本帖最后由 福华 于 2015-6-21 21:23 编辑
已通过编译的代码:
#include <stdio.h>
#include <stdlib.h>
int ggs(int a,int b,int c)/*定义函数ggs来判断勾股数*/
{
if(a*a+b*b==c*c) return 1;
else return 0;
}
int main()
{
int n,a,b,c,amount=0; /*n代表要拆的数,abc为一组勾股数,amount用于计数*/
for(n=3;n<=1000;n++)
{
for(a=3;a<=n/3;a++) /*根据题意,a<n/3*/
for(b=a+1;b<=n/2;b++) /*根据题意,b<n/2*/
{
c=n-a-b;
if(ggs(a,b,c))
{
printf("%d=%d+%d+%d\n",n,a,b,c);
amount++;
break; /*a,b,c满足时,a,b+1,c-1必定不满足,进入a+1*/
}
}
}
printf("总数=%d\n",amount);
getch();
system("pause");
return 0;
}
结果显示有3至1000中,有325个整数可以拆分为勾股数。
然而一直通不过。
问题在哪?
|