要求:
這一題充分讓我覺得我只能寫簡單的遞迴(實際這個也不難,但我想的不是這樣的,就……寫不出來= =需要好好找找一些遞迴的**實現來看看)
**(參考大神的**寫的,也理解了(但為啥自己就想不到呢?))
#include
#include
int count,n,sum;
int record[21]
;void
search
(int index,
int sum)
if(index>=n)
return;if
(sum-record[index]
>=0)
search
(index+
1,sum);}
intmain()
count =0;
search(0
,40);
printf
("%d\n"
,count)
;memset
(record,0,
sizeof
(record));
}}
修改了一下寫了乙個sum累加的版本(對累加抱有執念= =)
#include
#include
int count,n,sum;
int record[21]
;//利用index自動往後加1找到邊界
void
search
(int index,
int sum)
if(index>=n)
if(sum + record[index]
<40)
//這裡的引數寫的sum系統才給通過,但在本地測試,寫search(index+1,0)也能得到答案,存疑
search
(index+
1,sum);}
intmain()
count =0;
//相當於sum初始就是為0
search(0
,0);
printf
("%d\n"
,count)
;memset
(record,0,
sizeof
(record));
}}
PAT練習 神奇的口袋
有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a1,a2 an。john可以從這些物品中選擇一些,如果選出的物體的總體積是40,那麼利用這個神奇的口袋,john就可以得到這些物品。現在的問題是,john...
演算法筆記 神奇的口袋
有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a1,a2 an。john可以從這些物品中選擇一些,如果選出的物體的總體積是40,那麼利用這個神奇的口袋,john就可以得到這些物品。現在的問題是,john...
神奇的口袋
原題 有乙個神奇的口袋,總的容積是40,用這個口袋可以變出一些物品,這些物品的總體積必須是40。john現在有n個想要得到的物品,每個物品的體積分別是a1,a2 an。john可以從這些物品中選擇一些,如果選出的物體的總體積是40,那麼利用這個神奇的口袋,john就可以得到這些物品。現在的問題是,j...