最大的回文产品-程序未运行,已编写解决方案,但无法理解问题

时间:2018-10-16 16:53:01

标签: c++ c

我知道在给定数字的情况下查找回文的代码,并且我尝试将其归纳为查找由两个这样的3位数字的乘积构成的最大回文:-

#include<stdio.h>
#include<conio.h>
void main()
{
    int i,no,d,j,temp;
    int sum=0;
    clrscr();
for(i=1;i<1000;i++)
{
    for(j=1;j<1000;j++)
    {       
           sum=0;
           no=i*j;
           temp=no;
           while(no>0)
           {
                 d=no%10;
                 sum=sum*10 + d;
                 no=no/10;
           }
           if(sum==temp)
           {
                 printf("number is Palindrome %d\n",sum);
           }
    }
}
getch();
}

但是,我没有解决方案,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

int sum=0应该位于内部for循环内,紧接在行no=i*j之前: 对于每个新数字,总和的值应从零开始。如果将其放置在最前面,则它将采用从前一个sum生成的no的值来表示所有即将到来的no

如果将sum=0放在j循环之前的while循环内,则对于i*j的每个新组合,总和将从0开始,您将100%获得所有所需的回文