數字和為sum的方法數

2021-07-26 07:01:43 字數 630 閱讀 9908

給定乙個有n個正整數的陣列a和乙個整數sum,求選擇陣列a中部分數字和為sum的方案數。

當兩種選取方案有乙個數字的下標不一樣,我們就認為是不同的組成方案。

輸入描述:

輸入為兩行:

第一行為兩個正整數n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000)

第二行為n個正整數ai,以空格隔開。

輸出描述:

輸出所求的方案數

輸入例子:

5 15

5 5 10 2 3

輸出例子:

4 遞推,可用二維陣列也可以用一維的滾動陣列。

其思想是,每次加入乙個數,去更新和的狀態。

邊界是f[0]= 1。

#include 

using

namespace

std;

intconst maxn = 1100;

int data[maxn];

long

long f[maxn];

int main()

f[0] = 1;

for (int i=1;i<=n;i++) }}

cout

<}

動態規劃 數字和為sum的方法數

問題描述 給定乙個有n個正整數的陣列a和乙個整數sum,求選擇陣列a中部分數字和為sum的方案數。當兩種選取方案有乙個數字的下標不一樣,我們就認為是不同的組成方案。輸入描述 輸入為兩行 第一行為兩個正整數n 1 n 1000 sum 1 sum 1000 第二行為n個正整數a i 32位整數 以空格...

動態規劃 數字和為sum的方法數

題目描述 給定乙個有n個正整數的陣列a和乙個整數sum,求選擇陣列a中部分數字和為sum的方案數。當兩種選取方案有乙個數字的下標不一樣,我們就認為是不同的組成方案。輸入描述 輸入為兩行 第一行為兩個正整數n 1 n 1000 sum 1 sum 1000 第二行為n個正整數a i 以空格隔開。輸出描...

求解數字和為 sum 的方法數問題

問題描述 給定乙個有 n 個正整數的陣列 a 和乙個整數 sum,求選擇陣列 a 中部分數字和為 sum 的方案數。若兩種選區方案有乙個數字的下標不一樣,則認為是不同的方案。輸入描述 輸入為兩行,第 1 行為兩個正整數 n sum,第 2 行為 n 何正整數 a i 以空格 隔開。輸出描述 輸出所求...