簡單遞迴入門題 1 湊數字

2021-07-26 02:52:15 字數 771 閱讀 2269

有n個數字,a[1],a[2],a[3]......a[n],以及乙個數字m。

問n個數字中取出一些數字,這些數字的和能否等於m。

多組測試資料,讀入到檔案尾結束。

第一行輸入n,m。(1<=n<=20, 1<=m<=100)

第二行輸入n個數字a[1],a[2],a[3]......a[n]。(1<=a[i]<=100)

如果可以,輸出yes,否則輸出no。

5 5

1 1 1 1 1

5 52 2 2 2 2

yes

no

簡單遞迴的運用

#include #include #include using namespace std;

int n,m;

int ans;

int a[111];

int b[111];

void fun(int x)

b[x]=1;

fun(x+1);

b[x]=0;

fun(x+1);}

int main()

{ while(cin>>n>>m&&n&&m)

{ans=0;

b[0]=0;

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

cin>>a[i];

fun(1);

if(ans==1)

cout<<"yes"<

其實我本來就想用排序做的,

不過這種做法倒是給了好多的啟示。

遞迴入門自學

例題 計算給定的n個數的和 分析 顯然當n 0的a 0 為所求,因此可以將前n項可以看做是前n 1 即 a 0,n 2 項的和加上第n項 int sum int a,int n 如上演算法中的sum 在進行遞迴呼叫的時對自身的呼叫最多隻會進行一次,也就是在每一層次上至多只有乙個例項,且構成乙個線性結...

《遞迴入門》之回文

所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的。比如 level aaabbaaa 題目 判斷乙個字串是否為回文 解法 遞迴 遞迴的作用在於把問題的規模不斷縮少,直到問題縮少到能簡單地解決 問 如何縮少問題規模?答 通過觀察可以知道,乙個回文字串其中內部也是回文。所以,我們只需要以去...

C語言 遞迴入門

遞迴是什麼,遞迴就是一種解決問題的方法 程式自身呼叫自身叫做遞迴。它的核心在於 大事化小!先舉幾個例子 1.接受乙個整型值,按順序列印它的每一位。只考慮正數 如 1234 應輸出1 2 3 4 1 先討論如果不遞迴該怎樣處理,一般步驟是這樣的,先判斷這個數是幾位數,然後在記錄下這個數的每一位,最後輸...