不如不遇温言色 发表于 2019-8-30 17:58:56

考核阶段1 回文数

本帖最后由 不如不遇温言色 于 2019-8-31 09:47 编辑

/*找出最大的有由两个三位数乘积构成的回文数。*/

#include<stdio.h>
#include<math.h>

int main()
{
        long int a,b,target,invert,num,num_C;
        int t,i;
       
       
        for(a=999;a>=100;a--)
        {
                for(b=999;b>=100;b--)
                {
                        num=a*b;
                        num_C=num;
                        target=num_C;
                        invert=0;
                       
                        while(target)//求倒置数
                        {
                                invert=invert*10+target%10;
                                target=target/10;
                               
                                if(target==num)
                                {
                                        goto FIND;
                                }
                        }
                       
                }
        }
FIND:printf("%ld",num);
       
}


这是我自己根据小甲鱼的答案又写了份代码,
小甲鱼先算是否符合回文数,再算能否得到两个三位数,
我是想从num=a*b慢慢减下来算起,判断其是否是回文数,是的话就跳出循环,可是得到的答案总是999*999的和?为什么啊?

不如不遇温言色 发表于 2019-8-31 09:47:02

原来是因为无法确定一定是最大的回文数
页: [1]
查看完整版本: 考核阶段1 回文数