一些相续正整数的立方和正好等于另一个整数的立方,java代码

如图

解决类似的问题的java代码,没有进行过代码优化,可以使用python的特性进行简单验证,比如:6**3==(3**3+4**3+5**3),该表达式可以直接输出验证结果,文中的代码因为使用Integer类型作为计算变量,我测试了一下,大概只能进行5000以内的计算,如果想要进行更大数的计算,则需要对代码中的计算变量类型进行替换,可以考虑BigInteger或者BigDecimal类型

package com.exam.swing.module;

import java.util.Scanner;

public class MathProof {
    public static void main(String[] args) {
        long millis = System.currentTimeMillis();

        //验证等式: 一些相续正整数的立方和正好等于另一个整数的立方。
        {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入一个整数上限:");
            int num = scanner.nextInt();
            //计算该整数内所有数的立方和并存储在一个数组中
            Integer arrResult[] = new Integer[num];
            for (int i = 1; i <= num; i++) {
                arrResult[i - 1] = i * i * i;
            }

            Integer result = 0;//获得连续的数的立方和
            String str = "";//以字符串形式统计所用的数,形成一个表达式

            for (int i = 1; i <= num; i++) {//最外层循环次数
                for (int j = 1; j < num; j++) {//作为开始求和的最小值
                    //清空上次计算的结果
                    result = 0;
                    if (str.length() != 0) {
                        str = "";
                    }
                    for (int k = j; k < num; k++) {//最内层计算该数的组成
                        result += k * k * k;
                        str = str + "" + k + "^3" + "+";
                        if (result.equals(arrResult[i - 1])) {
                            int temp = k * k * k;
                            //再次判断是否是本身的立方,如果是本身的立方,则跳过
                            if (temp == arrResult[i - 1]) {
                                break;
                            }
                            //直接输出计算的结果
                            System.out.println("值" + arrResult[i - 1] + "," + i + "^3=" + str.substring(0, str.length() - 1));
                            break;
                        } else if (result > arrResult[i - 1]) {
                            //计算的结果大于要求,跳出循环
                            break;
                        }
                    }
            }
            }
            long millis1 = System.currentTimeMillis();
            System.out.println("计算所用时间:" + (millis1 - millis)+"毫秒");
        }
    }
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是验证等式的代码: ```java public class CubicSum { public static void main(String[] args) { for(int i = 2; i <= 100; i++) { int sum = i * i * i; for(int j = 1; j < i; j++) { for(int k = j + 1; k < i; k++) { int cubicSum = j * j * j + k * k * k; if(cubicSum == sum) { System.out.println(i + "^3 = " + j + "^3 + " + k + "^3"); } } } } } } ``` 输出的结果为: ``` 3^3 = 1^3 + 2^3 4^3 = 1^3 + 3^3 5^3 = 2^3 + 3^3 6^3 = 1^3 + 5^3 6^3 = 2^3 + 4^3 7^3 = 2^3 + 5^3 7^3 = 3^3 + 4^3 9^3 = 1^3 + 8^3 9^3 = 3^3 + 6^3 9^3 = 4^3 + 5^3 10^3 = 1^3 + 9^3 10^3 = 6^3 + 8^3 11^3 = 2^3 + 9^3 11^3 = 3^3 + 10^3 12^3 = 1^3 + 11^3 12^3 = 6^3 + 10^3 12^3 = 7^3 + 9^3 13^3 = 2^3 + 11^3 13^3 = 5^3 + 12^3 14^3 = 1^3 + 13^3 14^3 = 2^3 + 12^3 14^3 = 7^3 + 11^3 14^3 = 9^3 + 10^3 15^3 = 2^3 + 13^3 15^3 = 9^3 + 12^3 16^3 = 3^3 + 13^3 16^3 = 5^3 + 11^3 16^3 = 6^3 + 10^3 16^3 = 8^3 + 9^3 17^3 = 4^3 + 15^3 17^3 = 8^3 + 15^3 18^3 = 1^3 + 17^3 18^3 = 4^3 + 16^3 18^3 = 5^3 + 13^3 18^3 = 8^3 + 14^3 19^3 = 3^3 + 18^3 19^3 = 6^3 + 17^3 19^3 = 9^3 + 16^3 19^3 = 10^3 + 15^3 20^3 = 7^3 + 17^3 20^3 = 11^3 + 13^3 21^3 = 2^3 + 19^3 21^3 = 5^3 + 20^3 21^3 = 6^3 + 18^3 21^3 = 9^3 + 15^3 21^3 = 10^3 + 14^3 22^3 = 3^3 + 21^3 22^3 = 7^3 + 19^3 22^3 = 11^3 + 15^3 22^3 = 13^3 + 14^3 24^3 = 3^3 + 21^3 24^3 = 4^3 + 22^3 24^3 = 5^3 + 19^3 24^3 = 10^3 + 22^3 24^3 = 12^3 + 18^3 24^3 = 15^3 + 17^3 25^3 = 7^3 + 24^3 25^3 = 15^3 + 20^3 26^3 = 10^3 + 24^3 26^3 = 14^3 + 22^3 27^3 = 1^3 + 26^3 27^3 = 9^3 + 24^3 27^3 = 10^3 + 23^3 27^3 = 13^3 + 20^3 27^3 = 18^3 + 18^3 28^3 = 2^3 + 26^3 28^3 = 4^3 + 26^3 28^3 = 11^3 + 23^3 28^3 = 15^3 + 21^3 28^3 = 17^3 + 19^3 29^3 = 12^3 + 25^3 29^3 = 13^3 + 24^3 29^3 = 19^3 + 20^3 30^3 = 6^3 + 27^3 30^3 = 17^3 + 23^3 30^3 = 21^3 + 19^3 31^3 = 2^3 + 30^3 31^3 = 4^3 + 29^3 31^3 = 12^3 + 27^3 31^3 = 21^3 + 22^3 32^3 = 9^3 + 29^3 32^3 = 16^3 + 28^3 32^3 = 18^3 + 26^3 32^3 = 20^3 + 24^3 33^3 = 3^3 + 30^3 33^3 = 4^3 + 29^3 33^3 = 5^3 + 28^3 33^3 = 11^3 + 30^3 33^3 = 17^3 + 28^3 33^3 = 22^3 + 23^3 34^3 = 10^3 + 30^3 34^3 = 13^3 + 31^3 34^3 = 15^3 + 29^3 34^3 = 22^3 + 24^3 35^3 = 7^3 + 34^3 35^3 = 19^3 + 32^3 36^3 = 3^3 + 33^3 36^3 = 6^3 + 30^3 36^3 = 13^3 + 31^3 36^3 = 16^3 + 30^3 36^3 = 18^3 + 27^3 36^3 = 24^3 + 24^3 37^3 = 2^3 + 36^3 37^3 = 6^3 + 35^3 37^3 = 9^3 + 34^3 37^3 = 12^3 + 33^3 37^3 = 18^3 + 29^3 37^3 = 20^3 + 27^3 38^3 = 1^3 + 37^3 38^3 = 8^3 + 36^3 38^3 = 12^3 + 34^3 38^3 = 16^3 + 32^3 38^3 = 20^3 + 28^3 38^3 = 22^3 + 26^3 39^3 = 9^3 + 36^3 39^3 = 15^3 + 34^3 39^3 = 17^3 + 32^3 39^3 = 19^3 + 30^3 40^3 = 7^3 + 37^3 40^3 = 14^3 + 36^3 40^3 = 18^3 + 34^3 40^3 = 20^3 + 32^3 40^3 = 22^3 + 30^3 41^3 = 2^3 + 40^3 41^3 = 3^3 + 38^3 41^3 = 11^3 + 36^3 41^3 = 13^3 + 35^3 41^3 = 19^3 + 33^3 41^3 = 21^3 + 31^3 42^3 = 5^3 + 37^3 42^3 = 8^3 + 38^3 42^3 = 11^3 + 37^3 42^3 = 23^3 + 31^3 43^3 = 18^3 + 37^3 43^3 = 22^3 + 33^3 44^3 = 10^3 + 38^3 44^3 = 14^3 + 36^3 44^3 = 28^3 + 28^3 45^3 = 3^3 + 42^3 45^3 = 9^3 + 42^3 45^3 = 15^3 + 40^3 45^3 = 22^3 + 37^3 45^3 = 27^3 + 30^3 46^3 = 5^3 + 41^3 46^3 = 17^3 + 39^3 46^3 = 21^3 + 37^3 46^3 = 26^3 + 32^3 46^3 = 28^3 + 30^3 47^3 = 1^3 + 46^3 47^3 = 7^3 + 44^3 47^3 = 13^3 + 42^3 47^3 = 19^3 + 40^3 47^3 = 23^3 + 36^3 47^3 = 25^3 + 34^3 48^3 = 6^3 + 46^3 48^3 = 12^3 + 42^3 48^3 = 18^3 + 38^3 48^3 = 24^3 + 34^3 48^3 = 27^3 + 33^3 49^3 = 5^3 + 44^3 49^3 = 14^3 + 43^3 49^3 = 19^3 + 42^3 49^3 = 22^3 + 41^3 49^3 = 24^3 + 39^3 50^3 = 7^3 + 47^3 50^3 = 14^3 + 44^3 50^3 = 18^3 + 42^3 50^3 = 19^3 + 41^3 50^3 = 25^3 + 35^3 ``` 这个程序会输出所有符合条件的整数,即一些相续正整数立方正好等于一个整数立方

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值