题目描述
我们要求找出具有下列性质数的个数(包含输入的自然数nn):
先输入一个自然数nn(n \le 1000n≤1000),然后对此自然数按照如下方法进行处理:
不作任何处理;
在它的左边加上一个自然数,但该自然数不能超过原数的一半;
加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入格式
1个自然数n(n≤1000)
输出格式
1个整数,表示具有该性质数的个数。
输入输出样例
输入 #1复制
6
输出 #1复制
6
说明/提示
满足条件的数为
6,16,26,126,36,136
#include<stdio.h>
int main(){
int n;//待输入的自然数√
scanf("%d",&n);//输入
static int a[];//静态定义初始化(也可以通过全局定义来操作)
for(int i=;i<=n;i++){
for(int j=;j<=i/;j++){
a[i]+=a[j]; //递推求和 和为当前具有该性质的数字个数
}
a[i]++; //加上它本身√
}
printf("%d\n",a[n]);//输出结果
return ;//可有可无(bushi)
}