Java机试题:验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。(等差数列)
2021/12/30 14:08:31
本文主要是介绍Java机试题:验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。(等差数列),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
思路一(思路有点长了):
import java.util.*; /* * 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextInt()){ int num = sc.nextInt(); // 立方值 int value = num * num * num; // 连续奇数最大最小的差 int differMinMax = 2 * (num - 1); // 连续奇数最大最小的值范围 int min = value / num - differMinMax; if(min % 2 == 0){ min -= 1; } int max = value / num + differMinMax; if(max % 2 == 0){ max += 1; } // 找符合条件的连续奇数 int sum = 0; // 直接使用treeSet,排序(连续奇数不可能有重复,故直接使用TreeSet默认排序) TreeSet<Integer> nums = new TreeSet<Integer>(); // 每次--2,作为连续奇数最大的 for (int i = max; i >= min; i = i - 2) { sum = 0; nums = new TreeSet<Integer>(); int numTemp = i; sum += numTemp; nums.add(numTemp); // 求当前最大奇数,连续的num个奇数和 for (int j = 1; j < num ; j++) { numTemp = numTemp - 2; sum += numTemp; nums.add(numTemp); } if (sum == value){ break; } } // 输出连续奇数和形式 StringBuffer sb = new StringBuffer(); Iterator it = nums.iterator(); while (it.hasNext()){ sb.append(it.next()+"+"); } // 去掉最后一个多余+,substring下标位置,前包后不包 System.out.println(sb.substring(0,sb.length()-1)); } } }
思路二使用等差数列:
import java.util.*; /* * 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 * 这里连续奇数是等差数列 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextLong()){ long n = sc.nextLong(); // 该题已知Sn = n^3,n = n,d = 2,故根据等差数列(相关知识如下图)相关公式,可以求出a1 long a1 = n * n - n + 1; System.out.print(a1); for(int i=1; i<m ; i++){ System.out.print("+" + (a1 += 2)); } System.out.println(); } } }
参考链接:http://www.360doc.com/content/18/0727/07/47813312_773519742.shtml
这篇关于Java机试题:验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。(等差数列)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?