回文数的形成。任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后,重复以上步骤,最终可得到一个回文数,请编程验证。
**输入格式要求:"%ld" 提示信息:"please enter a number optionaly:" "The generation process of palindrome:\n" " input error, break.\n"
**输出格式要求:" [%d]: %ld+%ld=%ld\n" "Here we reached the aim at last !\n"
程序运行示例如下:
please enter a number optionaly:345
The generation process of palindrome:
[1]: 345+543=888
Here we reached the aim at last !
#include<stdio.h>
int Exchange(long a)
{
long c=0;
while (a)
{
c = c * 10 + a % 10;
a = a / 10;
}
return c;// 做出反序数
}
int process(long a)//
{
long i=1;
do
{
printf(" [%d]: %ld+%ld=%ld\n",i,a,Exchange(a), Exchange(a) + a);
a = Exchange(a) + a;
i++;
} while (judge(a));
}
int judge(long a)//判断是不是回文数
{
if(a == Exchange(a))
{
return 0;
}else
{
return 1;
}
}
int main()
{
long b,d,sum;
printf("please enter a number optionaly:");
scanf_s("%ld", &b);
if (b == 0||b> 2147483647){ printf(" input error, break.\n"); }
else
{
printf("The generation process of palindrome:\n");
process(b);
printf("Here we reached the aim at last !\n");
}
}