任何正整數都能分解成2的冪,給定整數n,求n的此類劃分方法的數量!由於方案數量較大,輸出mod 1000000007的結果。
比如n = 7時,共有6種劃分方法。
7=1+1+1+1+1+1+1
=1+1+1+1+1+2
=1+1+1+2+2
=1+2+2+2
=1+1+1+4
=1+2+4
input輸入乙個數n(1 <= n <= 10^6)output輸出劃分方法的數量mod 1000000007sample input
7sample output
6找規律
#include#includeusing
namespace
std;
//每個點最多翻轉一次
const
int maxn = 1e6 + 3
;#define inf 0x3f3f3f3f
/*ans(k) = ans(k-1)+ ans(k-2) + ans(k-4)
*/int
a[maxn];
intmain()
ios::sync_with_stdio(0);
intn;
while(cin>>n)
cout
}
#include
#include
using
namespace
std;
//每個點最多翻轉一次
const
intmaxn =
1e6+ 3;
#define inf 0x3f3f3f3f
/*ans(k) = ans(k-1)+ ans(k-2) + ans(k-4)
*/int
a[maxn];
intmain
() ios::sync_with_stdio(0);
intn;
while
(cin
>>n)
cout
1383 整數分解為2的冪 基準時間限制 1 秒 空間限制 131072 kb 任何正整數都能分解成2的冪,給定整數n,求n的此類劃分方法的數量!由於方案數量較大,輸出mod 1000000007的結果。比如n 7時,共有6種劃分方法。7 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 ... 最近遇到這樣的一道題,用到了遞迴,採用兩種辦法實現,第一種超時,第二種滿足要求。演算法小白也算是遞迴有了乙個初探。題目如下 乙個正整數可以表示為多個正整數相加的表示式,表示式中的各個正整數要求都是2的冪。例如給定正整數7,它有下列六個符合要求的表示式 1 1 1 1 1 1 1 1 2 1 1 1 ... 任何正整數都能分解成2的冪,給定整數n,求n的此類劃分方法的數量!由於方案數量較大,輸出mod 1000000007的結果。比如n 7時,共有6種劃分方法。7 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 1 2 2 2 1 1 1 4 1 2 4 看到這題就是乙個遞推題,...1383 整數分解為2的冪
整數分解為2的冪(遞迴)C語言
51Nod 1383 整數分解為2的冪