这是一道简单的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.