C++回文数的形成
不知道回文的形成规律有没有被数学证明。如果有,朋友可以告诉我是编程验证的。
规则:任意一个十进制整数,把它转过来,加到原整数上。得到一个新的整数后,重复上述步骤,最后得到一个回文。
#包括
#define MAX 2147483648 //限制M+N的范围
re(long int a)//查找输入整数的逆序
{
long int t;
for(t = 0;a > 0;A/=10)//反转整数顺序
t = t * 10+a % 10;
return t;
}
non re(long ints)//判断给定的整数是否为回文。
{
if(re(s)==s)
返回1;//是的,它返回1
其他
返回0;//不返回0
}
void main()
{
long int n,m;
int count = 0;
printf("请选择性地输入一个数字:");
scanf("%ld ",& n);
printf("回文的生成过程:\ n ");
而(!non((m = re(n))+n))//判断一个整数在其逆序相加后是否为回文。
{
If((m+n)>=MAX)//超过极限时输出提示信息。
{
printf("输入错误,中断。\ n ");
打破;
}
其他
{
printf("[%d]:%ld+%ld=%ld\n ",++count,n,m,m+n);
n+= m;//累加
}
}
printf("[%d]:%d+%ld=%ld\n ",++count,n,m+n);
printf(“这里我们终于达到了目的。\ n ");//输出回文的个数。
}
位律师回复
0条评论