HJ76 尼科彻斯定理
描述验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19输入一个正
描述
验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。
数据范围:1≤m≤100
进阶:时间复杂度:O(m),空间复杂度:O(1)
输入描述:
输入一个int整数
输出描述:
输出分解后的string
示例1
输入:6
输出:31+33+35+37+39+41
解题思路:
网上找了很多答案都是基于一个前提:知道尼科彻斯定理中开始的数是:n*n-n+1
如果不知道,怎么解?假设输入值是m
找规律假设知道第一个数是n 因为是等差数列,所以数的规律就是 n + 2*i,i<m
//返回尼科彻斯定理中开始的数npublic static int ss(int m){n for(int j = 0; j<m*m*m; j++){n int total = j;n for(int i=1;i< m;i++){n total += j + 2*i;n }n if(total == m*m*m){n return j;n }n }n return -1;n}