首页 > 其他 > 详细

题目1084:整数拆分 (递推)

时间:2015-04-05 11:43:10      阅读:132      评论:0      收藏:0      [点我收藏+]

题意:

问一个数拆分成2的幂的和的方法数有多少种。

 

我是先通过找列举前面的找规律

n   种数

1    1

2    2

3    2

4    4

5    4

6    6

7    6

8    10

9    10

10   14

……

 

技术分享
 1 #include<stdio.h>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<cstdlib>
 6 #include<cmath>
 7 #include<vector>
 8 #include<queue>
 9 #include<map>
10 #include<set>
11 
12 using namespace std;
13 
14 typedef long long ll;
15 
16 const int mod = 1000000000;
17 int f[1000010];
18 
19 void init()
20 {
21     f[1] = 1;
22     for(int i=2;i<=1000000;i++)
23     {
24         if(i&1) f[i] = f[i-1]%mod;
25         else f[i] = (f[i-1]+f[i/2])%mod;
26     }
27 }
28 
29 int main()
30 {
31     int n;
32     init();
33     while(~scanf("%d",&n))
34     {
35         printf("%d\n",f[n]);
36     }
37     return 0;
38 }
View Code

 

题目1084:整数拆分 (递推)

原文:http://www.cnblogs.com/hadis-yuki/p/4393759.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!