错在哪
沫沫,灰灰和渣渣去锻炼身体,如果对他们跑步的距离分别只计整数 a、 b、 c,由于他们身高的差距,造成了 a<=b<=c,并且渣渣跑了N米之后就再也跑不动了。但是,按照他们事先的约定: 只有当 c*c==a*a+b*b 时,他们的锻炼才有效果。
现在他们三个人想知道,如果渣渣的极限N已知,那么有多少种有锻炼效果的跑步方案(即a, b, c有多少种可能的取值)。
输入格式:
一个整数N,表示渣渣的体力极限, N <= 5000。
输出格式:
一个整数,代表他们跑步方案的个数。
Hint:对于输入N=5,有方案 a=3, b=4, c=5, 共一种。
输入样例:
5
输出样例:
1
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int N;
scanf("%d",&N);
int k=0,i1,i2;
for(i1=N-1;i1>=1;i1--){
for(i2=N-1;i2>=1&&i2<=i1;i2--){
if(N*N==i1*i1+i2*i2){
k++;
}
}
}
printf("%d",k);
return 0;
}