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
:对于每个新数字,总和的值应该从零开始。如果它放在最开始,它将取sum
之前生成的值no
for allcoming no
。
如果您sum=0
在j
循环之前放置在循环内,while
那么对于每个新i*j
的总和组合将从开始0
,您将 100% 获得所有所需的回文
推荐阅读
- css - Angular Material 按钮样式仅在 app.component 中应用
- caching - 使用 Laravel Cache 门面时如何选择不同的 Redis 连接
- ruby-on-rails - Rails actiontext/trix 显示问题
- python - 如果我从 cmd 运行此代码,Python 会出错,但是如果我从 Jupyter 运行它,则运行良好
- geojson - 将 GeoJson 转换为 gpd 时索引逐渐增加
- azure - 递归逻辑应用活动 ARM 模板自动化
- java - 正则表达式 - 任何顺序的单词
- ruby-on-rails - 在 rails 中访问 Session 版本号
- php - 为什么在为每个后续请求加载资源时分配的内存减半?
- aws-step-functions - 如何在 AWS Step Function 中重试已处理的故障