藍橋杯 奇怪的捐贈

2021-09-11 04:16:47 字數 1199 閱讀 2997

【問題描述】

地產大亨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份。在滿足上述要求的情況下,分成的份數越多越好!請你幫忙計算一下,...