【問題描述】
地產大亨q先生臨終的遺願是:拿出100萬元給x社群的居民**,以稍慰藉心中愧疚。
麻煩的是,他有個很奇怪的要求:
1. 100萬元必須被正好分成若干份(不能剩餘)。
每份必須是7的若干次方元。
比如:1元, 7元,49元,343元,...
2. 相同金額的份數不能超過5份。
3. 在滿足上述要求的情況下,分成的份數越多越好!
請你幫忙計算一下,最多可以分為多少份?
【問題分析】這個題目其實在我看來就是組合的問題,有重複項的問題,果然最近組合做多了,看什麼都像組合……
其實,每份的金額滿足是7的次方數的又小於100萬的,也就幾個那麼問題就很顯然啦。就是每乙個份額最多取五份,湊起來正好等於100萬元的份數最多能分成多少份。最最最簡單粗暴的就是暴力求解啊,也就八個迴圈嘛!分分鐘出來!但是!畢竟我們要探求更好(其實也沒好到哪去,就高階了一點)的方式。「aabbbc」中取3個字母的可能組合情況,就是乙個典型的重複組合的題目,如果你這個還不知道的話,建議先看一下我的這一篇部落格,花上一兩個小時,把排列組合相關的學一學,加油!
如果知道重複組合的問題,那麼這個題目的遞迴函式就很輕鬆就出來了
void f(int a,int x,int k,int goal);
//a為每份的金額
//x為每份金額的數目
//k為當前考慮的位置
//goal 為當前目標的金額,初始值為100,0000
【**】
#include using namespace std;
#define m 5 //最多四份
int count=0;
//a為每份的金額
//x為每份金額的數目
//k為當前考慮的位置
//goal 為當前目標的金額,初始值為100,0000
void f(int a,int x,int k,int goal){
if(k==8){
if(goal==0){
cout<<"第"<<++count<<"種情況:"<【最終**執行結果】
第1種情況:
1 1
7 1
49 3
343 3
2401 3
16807 3
117649 1
就只有一種情況~~~~~~~~那麼答案就是16啦!
藍橋杯模擬 奇怪的捐贈
地產大亨q先生臨終的遺願是 拿出100萬元給x社群的居民 以稍慰藉心中愧疚。麻煩的是,他有個很奇怪的要求 100萬元必須被正好分成若干份 不能剩餘 每份必須是7的若干次方元。比如 1元,7元,49元,343元,相同金額的份數不能超過5份。在滿足上述要求的情況下,分成的份數越多越好!請你幫忙計算一下,...
藍橋杯 奇怪的捐贈 進製的運用
1.奇怪的捐贈 地產大亨q先生臨終的遺願是 拿出100萬元給x社群的居民 以稍慰藉心中愧疚。麻煩的是,他有個很奇怪的要求 100萬元必須被正好分成若干份 不能剩餘 每份必須是7的若干次方元。比如 1元,7元,49元,343元,1.相同金額的份數不能超過5份。2.在滿足上述要求的情況下,分成的份數越多...
藍橋杯模擬賽 奇怪的捐贈 dfs
地產大亨q先生臨終的遺願是 拿出100萬元給x社群的居民 以稍慰藉心中愧疚。麻煩的是,他有個很奇怪的要求 100萬元必須被正好分成若干份 不能剩餘 每份必須是7的若干次方元。比如 1元,7元,49元,343元,相同金額的份數不能超過5份。在滿足上述要求的情況下,分成的份數越多越好!請你幫忙計算一下,...