P1028 数的计算
P1028 数的计算
题目链接:https://www.luogu.org/problem/P1028
思路:
找规律。
1 :1 (1)
2: 2 (2,12)
3: 2 (3,13)
4: 4 (4,14,24,124) = 2+2
5: 4 (5,15,25,125)
6: 6 (6,16,26,36,126,136)= 4+2
7: 6 (7,17,27,37,127,137)
8: 10 (8,18,28,38,48,128,138,148,248,1248)= 6+4
. . . . . .
可以看出:
1.奇数的答案与前一个偶数的答案相同;
2.偶数等于前一个数加上从2开始的数,即一半的数;
代码:
#include <stdio.h>
int main()
{
int n,a[1005],i;
scanf("%d",&n);
a[0] = 1;
for(i=1;i<=n;i++){
if(i%2!=0){ //判断奇偶数;
a[i] = a[i-1]+a[i/2];
}else{
a[i] = a[i-1];
}
}
printf("%d\n",a[n-1]);
return 0;
}