1011 数的计算

题目描述 Description

我们要求找出具有下列性质数的个数(包含输入的自然数n):

先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:

1.          不作任何处理;

2.          在它的左边加上一个自然数,但该自然数不能超过原数的一半;

3.          加上数后,继续按此规则进行处理,直到不能再加自然数为止.

输入描述 Input Description

一个数n

输出描述 Output Description

满足条件的数的个数

样例输入 Sample Input

6

样例输出 Sample Output

6

数据范围及提示 Data Size & Hint

6个数分别是:

6

16

26

126

36

136

递推!!

AC代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 
 7 int D(int n){
 8     int sum=1;
 9     for(int i=1;i<=n/2;i++){
10         sum+=D(i);
11     }
12     return sum;
13 }
14 int main(){
15     int n;
16     cin>>n;
17     cout<<D(n)<<endl;
18     return 0;
19 } 
原文地址:https://www.cnblogs.com/Kiven5197/p/5665023.html