华为机试牛客刷题之HJ76 尼科彻斯定理
华为机试牛客刷题之HJ76 尼科彻斯定理
描述
尼科彻斯定理,又称为斐波那契数列定理,指的是对于任意正整数 n,存在一个由连续奇数组成的数列,使得该数列的和等于 n 的立方。
例如:
- 对于n = 1,数列{1} 的和为 1^3= 1;
- 对于n=2,数列{3,5}的和为2^3 =3+5;
- 对于n=3,数列{7,9,11}的和为3^3=7+9+11;
- 对于n=4,数列{13,15,17,19}的和为4^3=13+15+ 17+ 19.
现在,给定一个正整数”,请输出这个数列中的元素从小到大相加的形式。我们可以证明答案是唯一的。
输入描述:
输入一个整数 n(1 ≤ n ≤ 100)代表需要输出的数列的和。
输出描述:
在一行上输出一个字符串,用于描述这个数列中的元素从小到大相加的形式。元素与元素之间用加号连接。
示例1
输入:
1
输出:
1
示例2
输入:
2
输出:
3+5
示例3
输入:
3
输出:
7+9+11
示例4
输入:
4
输出:
13+15+17+19
思路:
观察实例可得出由连续奇数组成的数列中的数字个数是正整数 n,且第一个数是n+(n-1)^2;因此根据用户输入的整数 a,生成一个特定格式的数学表达式即可。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
int index = a+(a-1)*(a-1);
int i = 0;
String str = "";
while(i < a){
str = str + index + "+";
index += 2;
i++;
}
System.out.println(str.substring(0,str.length()-1));
}
}
}