题解 | #整数拆分#
整数拆分
https://www.nowcoder.com/practice/376537f4609a49d296901db5139639ec
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int number = in.nextInt();
int total = total(number);
System.out.println(total);
}
}
// 数值很大会栈溢出
// static int total2(int num){
// if (num == 1) {
// return 1;
// }
// if (num % 2 == 0) {
// return total2(num - 1) + total2(num / 2);
// }else{
// return total2(num - 1);
// }
// }
static int total(int num) {
List<Integer> list = new ArrayList<>();
list.add(1);
for (int i = 1; i <= num; i++) {
if (i % 2 == 0) {
list.add((list.get(i - 1) + list.get(i / 2)) % 1000000000);
} else {
list.add((list.get(i - 1)) % 1000000000);
}
}
return list.get(num);
}
}
腾讯成长空间 5895人发布
