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

问题描述

我知道在给定数字的情况下找出回文的代码,并且我试图将其概括为找到由两个 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();
}

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

标签: c++c

解决方案


int sum=0应该在内部 for 循环内,就在以下行之前no=i*j:对于每个新数字,总和的值应该从零开始。如果它放在最开始,它将取sum之前生成的值nofor allcoming no

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


推荐阅读