題目:
- 形如a^3= b^3 + c^3 + d^3的等式被稱爲完美立方等式。例如
(N≤100),尋找所有的四元組(a, b, c, d),使得a3 = b3 +
c3 + d3,其中a,b,c,d 大於1, 小於等於N,且b<=c<=d。
- 輸入
- 輸出
Cube = a, Triple = (b,c,d)
其中a,b,c,d所在位置分別用實際求出四元組值代入。
解答:
- 我的原始解答:
#include <stdio.h>
int main()
{
int N;
int a,b,c,d;
scanf("%d",&N);
for(a=2;a<=N;a++){
for(b=2;b<=N-1;b++){
for(c=b;c<=N-1;c++){
for(d=c;d<=N-1;d++){
if((b<=c && c<=d && d<=a) && (a*a*a==b*b*b+c*c*c+d*d*d)){
printf("Cube = %d, Triple = (%d, %d, %d)\n",a,b,c,d);
}
}
}
}
}
return 0;
}
- 修改之後的解答:
#include <stdio.h>
int main()
{
int N;
int a,b,c,d;
scanf("%d",&N);
for(a=2;a<=N;a++){
for(b=2;b<=a-1;b++){
for(c=b;c<=a-1;c++){
for(d=c;d<=a-1;d++){
if(a*a*a==b*b*b+c*c*c+d*d*d){
printf("Cube = %d, Triple = (%d, %d, %d)\n",a,b,c,d);
}
}
}
}
}
return 0;
}
運行結果:
本題目來源於中國大學MOOC(慕課)平臺上《程序設計與算法(二)》,如要學習更多,請去 中國大學MOOC搜索 程序設計與算法。
我在此給出我的求解程序以及看了後續教學改進的程序,如果有什麼疑問可以聯繫我的QQ545030769,共同學習進步!