完美立方
形式如 : 的等式被称为完美立方等式,例如 :
。
编写一个程序,对于任给定的的N(N<=100),寻找所有的四元组( a , b , c , d ),使得
成立 ,其中(1 < b <= c <= d < a ) 。
输入 :
一个正整数N (N <= 100)
输出 :
每行输出一个完美立方
分析 :
1) 枚举也要学会优化 , 通过减少不必要的步骤减少代码运行的时间
2)可以四重循环枚举 a,b,c,d,并且 a 的范围是 [ 2 , N ] , b 的范围 [ 2 , a ] ,c 的范围 [ b , a-1 ], d 的范围 [ c , a-1 ] 。
代码实现如下 :
c++
#include <iostream>
int main() {
int N;
std::cin >> N;
for (int a = 2; a <= N; a++) {
for (int b = 2; b < a; b++) {
for (int c = b; c < a; c++) {
for (int d = c; d < a; d++) {
if (a * a * a == b * b * b + c * c * c + d * d * d) {
std::cout << "Cube = " << a << ", Truple = (" << b << ", "
<< c << ", " << d << ")\n";
}
}
}
}
}
return 0;
}
java
import java.util.Scanner;
public class perfectCube {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("please input the value of N");
int N = input.nextInt();
for (int a = 2; a <= N; a++) {
for (int b = 2; b < a; b++) {
for (int c = b; c < a; c++) {
for (int d = c; d < a; d++) {
if (a * a * a == b * b * b + c * c * c + d * d * d) {
System.out.println("Cube = " + a + ", Truple = (" + b + ", "
+ c + ", " + d + ")");
}
}
}
}
}
}
}