苏木三少
错的不是你,而是这个世界。

枚举-完美立方

枚举:基于逐个尝试答案的一种问题求解策略。

完美立方

描述

形如a^3= b^3 + c^3 + d^3的等式被称为完美立方等式。例如 12^3= 6^3 + 8^3 + 10^3 。编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a^3= b^3 + c^3 + d^3,其中a,b,c,d 大于 1, 小于等于N,且 b<=c<=d。 

输入   一个正整数N (N≤100)。  输出  每行输出一个完美立方。输出格式为: Cube = a, Triple = (b,c,d) 其中a,b,c,d所在位置分别用实际求出四元组值代入。
请按照a的值,从小到大依次输出。当两个完美立方 等式中a的值相同,则b值小的优先输出、仍相同 则c值小的优先输出、再相同则d值小的先输出。

输入

一个整数 n (n < = 100)。

输出

输出应如下所示, 每行一个完美多维数据集, 按 a 的非递减顺序 (即行应按其值排序)。b、c 和 d 的值也应在行本身上按非递减顺序列出。确实存在多个值, 可以从多个不同的 b、c 和 d 三元组生成。在这些情况下, 应首先列出具有较小 b 值的三倍。

样品输入

24
样品输出

Cube = 6, Triple = (3,4,5)
Cube = 12, Triple = (6,8,10)
Cube = 18, Triple = (2,12,16)
Cube = 18, Triple = (9,12,15)
Cube = 19, Triple = (3,10,18)
Cube = 20, Triple = (7,14,17)
Cube = 24, Triple = (12,16,20)

解题思路:

1、使用for循环解决问题。四层循环来枚举A,B,C,D.

2、使用枚举的思想。

3、输出格式Cube=%d,Triple=(%d,%d,%d);

4、a,b,c,d的范围:a[2,N] , b[2,a-1] ,c[b,a-1], d[c,a-1]

C语言源代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
int main(){
    int N;
    scanf("%d",&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)
                    printf("Cube=%d,Triple = (%d,%d,%d)\n",a,b,c,d);
                }
            }
        }
    }
    return 0;
}

JAVA语言代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
public class 完美立方 {
    public static void main(String[] args) {
        int N;
        Scanner S = new Scanner(System.in);
        N = S.nextInt();
        int a,b,c,d;
        for(a=2;a<=N;a++) {
            for(b=2;b<a;b++) {
                for(c=b;c<a;c++) {
                    for(d=c;d<a;d++) {
                        if(a*a*a==b*b*b+c*c*c+d*d*d) {
                            System.out.println("Cube="+a+",Triple=("+b+","+c+","+d+")");
                        }
                    }
                }
            }
        }
    }
}

输出截图:

C语言版

JAVA版

赞(2) 打赏
有问题的朋友随时留言,或者加我为好友。我的QQ是805375353. <<苏木三少博客 » 枚举-完美立方

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

十年之约