一道简单的C语言题,请告诉我错在哪里
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include"stdio.h"voidmain(){longi,j,k...
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
#include "stdio.h"
void main()
{
long i,j,k; int found=0;
for(i=0;i<100000;i++)
{
for(j=0;j<=i+100;j++)
if(j*j==i+100) {found++;break;}
if(found==0) continue;
for(k=0;k<=i+268;k++)
if(k*k==i+268) {found++;break;}
if(found==2) printf("%ld",i);
}
}
希望大家告诉我此程序错在哪里,一时间想不通。。。不给出正确的算法都行,只要指出思路哪里错了就好,感激不尽 展开
#include "stdio.h"
void main()
{
long i,j,k; int found=0;
for(i=0;i<100000;i++)
{
for(j=0;j<=i+100;j++)
if(j*j==i+100) {found++;break;}
if(found==0) continue;
for(k=0;k<=i+268;k++)
if(k*k==i+268) {found++;break;}
if(found==2) printf("%ld",i);
}
}
希望大家告诉我此程序错在哪里,一时间想不通。。。不给出正确的算法都行,只要指出思路哪里错了就好,感激不尽 展开
5个回答
展开全部
for(i=0;i<100000;i++)
{
后面要加
found=0;
使found变量归零
程序可改为
#include "stdio.h"
void main()
{
long i,j,k; int found=0;
for(i=0;i<100000;i++)
{
found=0;
for(j=0;j<=i+100;j++)
if(j*j==i+100) {
found++;
break;
}
if(found==0)
continue;
for(k=0;k<=i+268;k++)
if(k*k==i+268) {
found++;
break;
}
if(found==2)
printf("%ld ",i);
}
}
{
后面要加
found=0;
使found变量归零
程序可改为
#include "stdio.h"
void main()
{
long i,j,k; int found=0;
for(i=0;i<100000;i++)
{
found=0;
for(j=0;j<=i+100;j++)
if(j*j==i+100) {
found++;
break;
}
if(found==0)
continue;
for(k=0;k<=i+268;k++)
if(k*k==i+268) {
found++;
break;
}
if(found==2)
printf("%ld ",i);
}
}
展开全部
if(found==0) continue` 这句什么意思? 你不停的found++有啥意义呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的格式看得我很不爽
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
void main()
{
int i,j;
for(i=0;i<8100;i++)
{
for(j=0;j<=84;j++)
if(j*j==i+100)
{
for(;j<=84;j++)
if(j*j==i+268)
printf("%d\n",i);
}
}
}
显然当(n+1)^2-n^2>168时,就不可能满足题设条件了
所以 j<=84 i<=84^2
你的错误在于break和contniue使用不当。。不过我也不太会用contiue,所以就写个这样的程序出来,得出结果是21,261,1581
void main()
{
int i,j;
for(i=0;i<8100;i++)
{
for(j=0;j<=84;j++)
if(j*j==i+100)
{
for(;j<=84;j++)
if(j*j==i+268)
printf("%d\n",i);
}
}
}
显然当(n+1)^2-n^2>168时,就不可能满足题设条件了
所以 j<=84 i<=84^2
你的错误在于break和contniue使用不当。。不过我也不太会用contiue,所以就写个这样的程序出来,得出结果是21,261,1581
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以试一试找哪两个数的平方之差等于68.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询