提问人:SKCPA- 提问时间:5/28/2015 最后编辑:JJJSKCPA- 更新时间:5/28/2015 访问量:54
项目 Euler prob 4 in c?
Project Euler prob 4 in c?
问:
我想出了这个代码来解决问题,但输出显示最大的回文为 0。我不明白这个问题。需要帮助。我刚刚开始基本的 C 编码,我无法理解以下代码的错误:
#include<stdio.h>
int main()
{
int i=100,j=100,prod,temp,rev=0,rem,l,m,max=0;
for(;i<1000;i++)
{
for(;j<1000;j++)
{
prod=i*j;
temp=prod;
while(temp!=0)
{
rem=temp%10;
rev=(rev*10)+rem;
temp=temp/10;
}
if(rev==prod)
{
if(prod>max)
{
max=prod;
l=i;
m=j;
}
}
}
}
printf("\nThe largest number which is a palindrome and is a product of two 3 digit numbers is: %d and is the product of numbers %d and %d\n",max,l,m);
return 0;
}
答:
0赞
pmg
5/28/2015
#1
每次计算的重置。rev
rev = 0; // inside the loops
0赞
shruti1810
5/28/2015
#2
rev
每次重复都必须重置。
0赞
Maciej
5/28/2015
#3
有两件事会阻止此代码工作。首先,您需要
在每次迭代时重置。您还需要在外部循环的每次迭代时重置。rev=0
j=100
#include<stdio.h>
int main(int,char**)
{
int i=100,j=100,prod,temp,rev=0,rem,l,m,max=0;
for(;i<1000;i++)
{
for(j=100;j<1000;j++)
{
prod=i*j;
temp=prod;
rev=0;
while(temp!=0)
{
rem=temp%10;
rev=(rev*10)+rem;
temp=temp/10;
}
if(rev==prod)
{
if(prod>max)
{
max=prod;
l=i;
m=j;
}
}
}
}
printf("\nThe largest number which is a palindrome and is a product of two 3 digit numbers is: %d and is the product of numbers %d and %d\n",max,l,m);
return 0;
}
评论