這種東西只能壹個壹個試。符合條件就算壹個。
考慮三角形成立的條件。
考慮到三個數不會有兩個相同(否則第三個就不是整數),我們可以少算幾個。考慮到很多乘法運算,我們盡量把它們結合起來。
那麽如果a 2+b 2
於是就有了下面的程序。
# include & ltstdio.h & gt
int main()
{
int a[20],I,j,k,count = 0;//有多少//計數* * *?
for(I = 1;我& lt=20;i++)
a[I-1]= I * I;//計算20以內所有數字的平方,然後只需相加即可。
for(I = 0;我& lt20;i++)
for(j = I+1;j & lt20;J++){//最後輸入的起點是前壹個數字加上1。
for(k = j+1;k & ltI+j;K++){//三角形條件
If(a[i]+a[j]==a[k]){//找到壹個。
count++;
printf("%d:%d %d %d\n ",count,i+1,j+1,k+1);
打破;
}
else if(a[I]+a[j]& lt;A[k])//最後壹個肯定不是。
打破;
}
}
printf("總計:%d\n ",計數);
}