数的增长:
不同于数的增值,数的增长作出了更加复杂的要求:
给定一个数字n( n < 1000 ),可以按以下方法进行增长:
1. 在原数左侧加上不大于上一次增长一半的数字,首次处理将n视作上一次增长的数
2. 不作处理
问最多能生成多少个不同的数
**思路:**
1.递归的思路,并且设置全局变量,用于存储每次运算的值,减少重复运算
static int [] NUM = new int[1001];
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
NUM[1] = 1;
int inputNumber = input.nextInt();
System.out.println(getNum(inputNumber));
input.close();
}
public static int getNum(int num){
int ans = 1;
if (num == 1){
NUM[num] = 1;
return ans;
}else{
for (int i = 1; i <= (num/2) ; i++) {
if (NUM[i] != 0){
ans+=NUM[i];
}else{
ans+=getNum(i);
}
}
NUM[num] = ans;
return ans;
}