您的位置:首页 > 编程语言 > C语言/C++

完美立方

2018-03-19 16:47 411 查看

题目:

形如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,共同学习进步!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息