题解 | #尼科彻斯定理#
尼科彻斯定理
https://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85
一开始没有想到等差数列公式来解决,我这个算是最笨的方法。但应该非常好理解:
1.首先找规律,1 3 5 7 9 11 13 15 17 19 21 23 25 27 29,每个按 1,2 ,3 分开 得到 1,3 5, 7 9 11 ,13 15 17 19 ,21 23 25 27 29
2.根据输入数字的阶乘为数组长度,初始化 0为1,进行赋值
3.在输出数组中的按我们分类后的 数字对应的部分
package huawei.nowcoder;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
/**
* 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
* 例如:
* 1^3=1
* 2^3=3+5
* 3^3=7+9+11
* 4^3=13+15+17+19
*
* @author Az
* @date 2022/9/7
*/
public class HJ76 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String n;
if ((n = br.readLine()) != null) {
int num = Integer.parseInt(n);
int length = 0;
while (num > 0) {
length += num;
num--;
}
int[] nums = new int[length];
nums[0] = 1;
int temp = 1;
for (int i = 1; i < length; ++i) {
nums[i] = temp + 2;
temp = nums[i];
}
for (int i = nums.length - Integer.parseInt(n); i < nums.length; i++) {
if (i != nums.length - 1) {
System.out.print(nums[i] + "+");
} else {
System.out.print(nums[i]);
}
}
}
}
}
拼多多集团-PDD公司福利 817人发布