题目出处点这里
**
思路如下:本质就是找规律
暴力递归会TLE,直接采用递推即可(把输出注释放开就是递归)
**
package reintroduction_recursion;
import java.util.Scanner;
public class P1028 {
static int[] arr;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// System.out.println(Num(n));
//递推
arr = new int[n+1];
arr[0] = 0;
arr[1] = 1;
for (int i = 2; i <= n; i++) {
if (i%2 == 0) {
arr[i] = arr[i-1] + arr[i/2];
}else {
arr[i] = arr[i-1];
}
}
System.out.println(arr[n]);
}
//递归解法
public static int Num(int n) {
if (n==1) {
return 1;
}
if (n % 2 == 0) {//为偶数
return Num(n-1) + Num(n/2);
}else {
return Num(n-1);
}
}
}