找出两个三位数相乘后得到的最大的回文数
这是一道简单的C语言面试题,环境为linux./*找出任意两个三位数相乘后得到的最大的回文数*/#include#include#include#define MAX 20/*由于itoa函数在linux系统不存在,所以自己定义.*/char *itoa(int value,char *string){int rt=0;if(string==NULL)
·
这是一道简单的C语言面试题,环境为linux.
/*找出任意两个三位数相乘后得到的最大的回文数*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 20
/*由于itoa函数在linux系统不存在,所以自己定义.*/
char *itoa(int value,char *string)
{
int rt=0;
if(string==NULL)
return NULL;
rt=snprintf(string,MAX,"%d",value);
if(rt>MAX)
return NULL;
string[rt]='\0';
return string;
}
int huiwen_flag(int arg)
{
char c[MAX+1];
int i,j;
itoa(arg,c);
i=strlen(c);
for(j=0;j<i/2+1;j++)
{
if(c[j]!=c[i-j-1])
return 0;
}
return 1;
}
int main()
{
int i,j,n,result=0;
for(i=100;i<999;i++)
{
for(j=i;j<999;j++)
{
n=i*j;
if( huiwen_flag(n) && n>result )
result=n;
}
}
printf("%d\n",result);
return 0;
}
程序运行的结果为906609.
更多推荐
已为社区贡献3条内容
所有评论(0)