博客
关于我
微软面试题
阅读量:424 次
发布时间:2019-03-06

本文共 1683 字,大约阅读时间需要 5 分钟。

罗马数字共有七个,即
I(1),V(5),X(10),L(50),C(100),D(500),M(1000)。
按照下面三条规则可以表示任意正整数。
重复数次:一个罗马数字重复几次,就表示这个数的几倍。
右加左减:在一个较大的罗马数字的右边记上一个较小的罗马数字,
表示大数字加小数字。在一个较大的数字的左边记上一个较小的罗
马数字,表示大数字减小数字。但是,左减不能跨越等级。
比如,99不可以用IC表示,用XCIX表示
基本数字Ⅰ、X 、C 中的任何一个,自身连用构成数目,或者放在大数的右边连用构成数目,都不能超过三个,比如40不能用XXXX,而用XL表示
设计一个函数,将100(包括100)以内的整数转换成罗马数字,超过100不考虑
int itor(int n,char* buf,int bufLength)
其中,n是要转换的整数,buf是要输出的字符串,bufLength是buf的字符长度
成功,返回0,否则,返回 -1;
比如:
char buf[256];
result = itor(n,buf,sizeof(buf));
when n = 28; result = 0, 输出"XXVIII";
when n = 72; result = 0, 输出"LXXII";
答案如下:
#include <stdio.h>
#include <string.h>
static const char* a[] =
{"","I","II","III","IV","V","VI","VII","VIII","IX"};
static const char* b[] =
{"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","C"};
static const char* c[] =
{"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM", "M"};
int itor(int n, char *buf, int bufLength)
{
    if (n < 0 || n > 100)
        return -1;
    int num1,num2, num3;
    num1 = n % 10;
    num2 = (n / 10) % 10;
    num3 = n / 100;
    int index = 0;
    if (strlen(c[num3]) + strlen(b[num2]) + strlen(a[num1]) > bufLength)
        return -1;
    strcpy(buf, c[num3]);
    strcat(buf, b[num2]);
    strcat(buf, a[num1]);
    return 0;
}
int main(int ac, char** av)
{
    int i;
    char buffer[64] = {0};
    scanf("%d", &i);
    if (itor(i, buffer, 63) == 0)
        printf("%s\n", buffer);
}
###################################################################
有一个N*N的矩阵, 里面有N*N个数,这个矩阵的每一行,每一列都是排序好的,下面是一 个例子 1   3  7   9 2   5  13  14 6   7  25  26 20  24 30  40 现在设计一个算法,在这个矩阵中search一个数,要求尽可能快
####################################################################
1、写一个在一百万个数字中求十个最大的数算法
2、已知一个算法是NLog2N的,有没有办法把它搞成O(N)
3、写一个inttochar的函数,int未知长度
4、已知一组数据符合正态分布,如果要排序,用什么算法最快?

转载地址:http://iwdyz.baihongyu.com/

你可能感兴趣的文章
liteide错误: 进程无法启动--解决方法
查看>>
Java程序中的代理作用和应用场景及实现
查看>>
Oracle 用户
查看>>
Java 前台后台数据传递、中文乱码解决方法
查看>>
Git报错:Permission denied (publickey)
查看>>
常见的图文布局
查看>>
Laravel - 上手实现 - 文件上传、保存到 public 目录下
查看>>
一次性搞懂 PHP 中面向对象的所有知识点。
查看>>
JQuery.validate.js 表单验证
查看>>
vi 编辑器基本命令
查看>>
将mongo设置为windows的服务
查看>>
Linux 修改环境变量报错
查看>>
MYSQL 面试中 查询系列 常考问题
查看>>
JMeter的JavaRequest探究
查看>>
【Flink】Flink 底层RPC框架分析
查看>>
【字符编码】字符编码 && Base64编码算法
查看>>
【集合框架】JDK1.8源码分析之LinkedList(七)
查看>>
【JUC】JDK1.8源码分析之Semaphore(六)
查看>>
【目录】JUC锁框架目录
查看>>
【设计模式】策略模式
查看>>