整數的2的冪分解

2021-09-30 14:13:12 字數 755 閱讀 4042

#include#include#include#include#includeusing namespace std;

int dp[1000008];

/*題目描述

乙個整數總可以拆分為2的冪的和,例如: 7=1+2+4

7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1

總共有六種不同的拆分方式。 再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。

用f(n)表示n的不同拆分的種數,例如f(7)=6. 要求編寫程式,讀入n(不超過1000000),輸出f(n)%1000000000。

輸入描述:

每組輸入包括乙個整數:n(1<=n<=1000000)。

輸出描述:

對於每組資料,輸出f(n)%1000000000。輸入7

輸出6*//*列表:從1到23的結果,找規律?????

1, 2, 2, 4, 4, 6, 6, 10, 10, 14, 14, 20, 20, 26, 26, 36, 36, 46, 46, 60, 60, 74, 74*/

int find_2_power(int n)

for (i = 2; i <= n; i++)

else

}return dp[i-1];

}int main()

return 0;

}

整數分解為2的冪 數學

任何正整數都能分解成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 ...

1383 整數分解為2的冪

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的冪(遞迴)C語言

最近遇到這樣的一道題,用到了遞迴,採用兩種辦法實現,第一種超時,第二種滿足要求。演算法小白也算是遞迴有了乙個初探。題目如下 乙個正整數可以表示為多個正整數相加的表示式,表示式中的各個正整數要求都是2的冪。例如給定正整數7,它有下列六個符合要求的表示式 1 1 1 1 1 1 1 1 2 1 1 1 ...