求出方程所有可能的解
题目:c*c==a*a+b*b 输入n值(c<=n),求满足方程的解的个数。输入格式:
一个整数n, n <= 5000。
输出格式:
一个整数
Hint:对于输入n=5,有 a=3, b=4, c=5, 共一种。
输入样例:
5
输出样例:
1
下面是我编写的程序,不知道为什么不正确,不能解决这个问题。
d表示方案个数
程序代码:
#include<stdio.h> int main() { int a,b,c,d,n; scanf("%d",&n); a=1;d=0; for(c=1;c<=n;c++) { for(b=1;b<n;b++) { a=1; while((c*c<=a*a+b*b)&&(c>a)) { if(c*c==a*a+b*b)d=d+1; else a=a+1; }} } printf("%d\n",d); return 0; }