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

标签 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();
}

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

最佳答案

int sum=0 应该在内层 for 循环中,就在 no=i*j 行之前: 对于每个新数字,总和的值应从零开始。如果放在最开始,它会取前一个no生成的sum的值给所有的no

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

关于c++ - 最大的回文产品-程序无法运行,写了解决方案但无法理解问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52840442/

相关文章:

iphone - 如何在 Objective-C 中使用 C 语言数组

c - SIOCADDRT 的 IPv6 等价物是什么?

c++ - 如何在opencv中检查白色四边形

c++ - 编译器生成的复制构造函数的线程安全

c++ - 三个类(class)相互联系

c - 虚拟地址到物理地址的映射

c - 对缓冲区大小施加限制

c++ - 是否可以在linux下启动或停止屏保时得到通知

c++ - GCC 链接器提示对现有全局变量的 undefined reference

c - OS X 拦截键盘事件到密码表单元素