C语言基础问题,回文数的猜测?所谓回文数,即顺序与逆序均为相同的整数.如292、10301均为回文数.有人猜测:任意一个十进制整数n(n不为回文数),经有限次“顺逆求和”操作可得到一个回文数.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 15:44:02
C语言基础问题,回文数的猜测?所谓回文数,即顺序与逆序均为相同的整数.如292、10301均为回文数.有人猜测:任意一个十进制整数n(n不为回文数),经有限次“顺逆求和”操作可得到一个回文数.
C语言基础问题,回文数的猜测?
所谓回文数,即顺序与逆序均为相同的整数.如292、10301均为回文数.
有人猜测:任意一个十进制整数n(n不为回文数),经有限次“顺逆求和”操作可得到一个回文数.这里的“顺逆求和”操作就是把一个数与其逆序数相加.例如,对于n=69,有(1)69+96=165 (2)165+561=726 (3)726+627=1353 (4) 1353+ 3531=4884(回文数).
试设计程序,验证某一区间[x1,x2]中的每一个数n是否为回文数,若不是,请展示n通过以上“顺逆求和”操作转化为回文数的步骤数.例如n=69时经4次操作得到回文数,输出69(4)及得到的回文数4884.如果超过100步还未能转化为回文数,则终止操作,输出n(?),表明该数可能不满足猜测.
输入
输入两个整数(第一个小于第二个).
输出
输出回文数的步骤数及相应的回文数.
样例输入
86 90
样例输出86(3):1111
87(4):4884
88(0):88
89(?):
90(1):99
以上是题目要求
以下是我的代码,为什么不正确
#include
int huiwen(int a)
{
int b,x,s=0;
b=a;
while(b)
{
s=s*10+b%10;
b=b/10;
}
if(s==a)
x=1;
else
x=0;
return(x);
}
int xunhuan(int b)
{
int y=0,z,p;
p=b;
while(b)
{
y=y*10+b%10;
b=b/10;
}
z=y+p;
return(z);
}
int main()
{
int xunhuan(int b);
int huiwen(int a);
int c,d,n,i,k,e=0,j=0,m=101;
int s[100];
scanf("%d%d",&c,&d);
n=d-c;
for(i=0;i
C语言基础问题,回文数的猜测?所谓回文数,即顺序与逆序均为相同的整数.如292、10301均为回文数.有人猜测:任意一个十进制整数n(n不为回文数),经有限次“顺逆求和”操作可得到一个回文数.
代码细节上又一些问题:
int main(){
int xunhuan(int b);
int huiwen(int a);
int c,d,n,i,k,e=0,j=0,m=101;
int s[100];
scanf("%d%d",&c,&d);
n=d-c;
for(i=0;i<n;i++)
{
s[i]=c+i;
k=s[i];//移到外面来
while(m--)
{
j++;
//k=s[i];
if(huiwen(k))//改为if
{
printf("%d(%d):%d\n",s[i],j,k);
break;
}
if(e==huiwen(k))
k=xunhuan(k);
if(m==0)
{
printf("%d(?):\n",s[i]);
}
}
}
return 0;
}
其他语法方面的问题没检查