70,037
社区成员
发帖
与我相关
我的任务
分享#include <stdio.h>
#include <math.h>
int isInteger(double a)
{
return a==(int)a;
}
int main()
{
for (int m=(int)sqrt(100.0);m<(168+1)/2;++m)
{
if(isInteger(sqrt(m*m+168.0)))printf("%d\n",m*m-100);
}
getchar();
}
不明白地方是:在n循环中如果有符合条件(i+268)==n*n,但是(i+100)==m*m,并不一定符合,当全部执行完n,再执行m,这样(i+100)==m*m 符合, (i+268)==n*n不一下符合。
请大哥指点一二。
#include <stdio.h>
#include <math.h>
main()
{
int i,m,n,c;
c=(int)(sqrt(1000));
for(i=1;i <=1000;i++)
for(m=1;m <=c;m++)
if((i+100)==m*m)
for(n=1;n <=c;n++)
if((i+268)==n*n)
printf("%d\n",i);
}