2014华为机试题目

1.输入摸一个数,然后将其倒过来相加,如果和不是回文串,那么将和再采取同样的操作,在判断得到的是否为回文串,这样往返7次,如果其中有一次是回文就直接打出来,若都没有,那么输出0;

也很简单!用库函数更简单,itoa这个!整数转成字符,然后判断回文!

2.关于匹配的字符串的个数的最大值,即目标字符串与多个字符串比配,找出匹配最多的那个字符串。

其实代码很简单,我当时用2个数组,下标即为字符,值为出现次数,这样 比较即可;

可是我输入字符的代码写错了比如要输入Li si;到一个字符数组里面,我写成了

char a[200];

cin>>a;//这里错了,应该写为cin.getline(a,200);因为cin输入遇到空格就认为输入结束,所以只有li,没有si

3.输入一个十进制的数,与一个n整数,求输出这个十进制数的n进制的数!

分析:哎,真倒霉,可以用atoi函数啊

itoa函数

#include<cstdlib>
#include<cstdio>
int main()
{
	int num = 10;
	char str[100];
	itoa(num, str, 2);
	printf("%s\n", str);
	return 0;
}


 

itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是目标字符串,第三个参数是转移数字时所用 的基数。在上例中,转换基数为10。10:十进制;2:二进制……
于是想到了一个十进制转二进制的方法:

#include<cstdlib>
#include<cstdio>
int main()
{
	int num = 10;
	char str[100];
	int n = atoi(itoa(num, str, 2));
	printf("%d\n",n);
	return 0;
}

先把num转换为二进制的字符串,再把该字符串转换为整数。
 
哎,平时用惯了VS2010,用VC++6.0就不熟了!!
posted on 2013-10-12 22:34  you Richer  阅读(197)  评论(0编辑  收藏  举报