帮忙写一下,就是输入一个数然后输出通过这个算法得到的回文数,最好用到自定义函数,用c语言写
自定义回文数判断函数,然后反复叠加判断
运行结果:
代码:
#include <stdio.h>
//逆序
int reverse(int n)
{
int s = 0;
while (n != 0)
{
s = s * 10 + n % 10;
n /= 10;
}
return s;
}
//判断回文
int huiwen(int n)
{
int r = reverse(n);
if (r == n)
return 1;
else
return 0;
}
int main()
{
int n;
int r, sum;
scanf("%d", &n);
while (1)
{
r = reverse(n);
sum = n + r;
printf("%d+%d=%d\n", n, r, sum);
if (huiwen(sum))
break;
else
{
n = sum;
}
}
return 0;
}
用递归函数比较简洁
另外题目应该限定这个整数的取值范围
#include <stdio.h>
long long rev(long long n)
{
long long m = 0;
while(n!=0)
{
m = m*10 + n%10;
n/=10;
}
return m;
}
void hw(long long n)
{
long long m =rev(n);
if(m==n)
{
return;
}
printf("%lld+%d=%lld\n",m,n,m+n);
hw(m+n);
}
int main()
{
long long n;
scanf("%lld",&n);
hw(n);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!