若一个数(首位不为0)从左向右与从右向左读都一样,则称之为回文数。
例如:给定一个十进制数56,若将56加65(即把56从右左读),则得到121是一个回文数。
如果在30步以内得到回文数,则输出步数,否则输出-1
回文数的判断函数:
bool huiwenshu(long int n)
{
long int m=0;
long int k;
k= n;
while (k > 0)//将n倒置后保存在m中
{
m = m * 10 + k % 10;
k/= 10;
}
if (m == n)
return 1;
else
return 0;
}
实现代码:
#include<stdio.h>
#include<stdbool.h>
int main()
{
long int num;
int count = 0;
scanf("%ld", &num);
long int m = 0;
long int k;
k = num;
while (k > 0)//将num倒置后保存在m中
{
m = m * 10 + k % 10;
k /= 10;
count += 1;
}
if (count>=30)
printf("-1");
else
printf("%d",count);
return 0;
}
C语言程序实现判断一个数是否能通过最多30次加法操作变成交换前后读取相同的数,如56+65=121。

6492

被折叠的 条评论
为什么被折叠?



