完美立方

題目:

  • 形如a^3= b^3 + c^3 + d^3的等式被稱爲完美立方等式。例如
123= 63 + 83 + 103 。編寫一個程序,對任給的正整數N
(N≤100),尋找所有的四元組(a, b, c, d),使得a3 = b3 +
c3 + d3,其中a,b,c,d 大於1, 小於等於N,且b<=c<=d。
  • 輸入
一個正整數N (N≤100)。
  • 輸出
每行輸出一個完美立方。輸出格式爲:
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,共同學習進步!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章