程序设计勾股定理 TimeLimit: 1 Second MemoryLimit: 32 Megabyte
#include
#include
intmain(intargc,char*argv[])
inti,a,b,c,n=0,p[100];
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{if(a*a+b*b==c*c)p[n]=1;
elsep[n]=0;
n++;}
for(i=0;i
printf(p[i]==1?"YES\n":"NO\n");
system("PAUSE");
return0;
本回答由提问者推荐
C++编程求满足勾股定理的个数
做这个题用了我一小时的时间,一直在考虑循环次数与计算时间的问题,还好算是有结果了
#include
#include
intmain()
doubleaa,bb,cc,z;
inta,b,c,cnt=0;
scanf("%d",&c);
cc=c*1.0*c;//c的平方,用double精度才够,int会溢出
for(a=1;a
aa=a*1.0*a;//a的平方
bb=cc-aa;//b方
b=(int)(sqrt(bb)+0.005);//开方得到b,加上个精度误差进行取整
z=bb-b*1.0*b;//检查b*b是不是等于bb.浮点数比较相等要用减法,因为精度问题
if(z<=0.005&&z>=-0.005)//在误差范围内,可视作两数相等
c=b;//为了循环次数控制
cnt++;
printf("%d\n",cnt);
return0;