有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 51 1 1 1 1
5 52 2 2 2 2
yesno
簡單遞迴的運用
#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 先討論如果不遞迴該怎樣處理,一般步驟是這樣的,先判斷這個數是幾位數,然後在記錄下這個數的每一位,最後輸...