请编程验证。(回文数就是将一个数从左向右读是一样的,如121,11等)。(注:回文数不超过2147483647)
回文数的这一形成规则目前还属于一个猜想,尚未获得数学上的验证,有些回文数要经历上百个步骤才能获得,请编程验证,打印形成过程。如输入整数78,则形成回文数的过程为:78+87=165,165+561=726,726+627=1353,1353+3531=4884。
提示:一个函数用来求反序数,另一个函数判断是否为回文数,在主函数中输入输出。
#include<stdio.h>
/*
int num(int x):求一个数x的反序数
x:目标数
返回值为目标数的反序数
*/
int num(int x)
{
int i=0;
while(x)
{
i=i*10+x%10;//将x的低位不断向上移
x=x/10;//取x的低位
}
return i;
}
/*
int judge(int x):判断x是否是一个回文数
返回1表示是
返回0表示不是
*/
int judge(int x)
{
if(x==num(x))
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int x1,x2,key;
printf("请输入起始数值:");
scanf("%d",&x1);//输入起始数值
if(!judge(x2))
{
printf("是回文数\n");//是回文表示形成过程结束
return 0;
}
while(1)
{
x2=num(x1);//获取其反序数
key=judge(x2);
if(key==0)//不是回文,则打印过程
{
printf("%d+%d=%d\n",x1,x2,x1+x2);
x1+=x2;
}
else
{
printf("是回文数\n");//是回文表示形成过程结束
break;
}
}
return 0;
}
对我的博客或其他方面有任何见解或问题的话都可以私信我
或者联系本人QQ:3128909688
微信:DreamHerome
欢迎致电