完美立方
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; }
运行结果:
我在此给出我的求解程序以及看了后续教学改进的程序,如果有什么疑问可以联系我的QQ545030769,共同学习进步!