作业帮 > 综合 > 作业

C语言基础问题,回文数的猜测?

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/10/06 01:39:36
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语言基础问题,回文数的猜测?
代码细节上又一些问题: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;
}其他语法方面的问题没检查

再问: 我写出来了,谢谢啊