第二屆藍橋杯C C 組第九題 購物 遞迴

2021-07-09 20:52:05 字數 865 閱讀 6303

公司發了某商店的購物券1000元,限定只能購買店中的m種商品。每種商品的**分別為m1,m2,…,要求程式列出所有的正好能消費完該購物券的不同購物方法。

程式輸入:

第一行是乙個整數m,代表可購買的商品的種類數。

接下來是m個整數,每個1行,分別代表這m種商品的單價。

程式輸出:

第一行是乙個整數,表示共有多少種方案

第二行開始,每種方案佔1行,表示對每種商品購買的數量,中間用空格分隔。

例如:輸入: 2

200300

則應輸出: 2

2  2

5  0

輸入: 2

500800

則應輸出: 1

2  0

要求考生把所有函式寫在乙個檔案中。除錯好後,存入與考生資料夾下對應題號的「解答.txt」中即可。相關的工程檔案不要拷入。

對於程式設計題目,要求選手給出的解答完全符合ansi c標準,不能使用c++特性;不能使用諸如繪圖、中斷呼叫等硬體相關或作業系統相關的api。

遞迴思路,具體見**註解。

#include#includeint m;//物品數

int p[100];//**

int ans[100][100];//ans[i][j]表示第i個方案中第j個物品被選數

int num[100];//num[i]表示第i件物品被選的個數

int cas=0;//方案數

int money=0;//花的錢

void buy(int n)//n表示當前搜尋到的物品編號

{ return ;

if(money==1000)//當花的錢正好為1000,滿足要求

{for(int i=0; i

第二屆藍橋杯 中獎計算

題目 中獎計算 某 活動的規則是 每位參與者在紙上寫下乙個8位數的號碼。最後通過搖獎的辦法隨機產生乙個8位數字。參與者寫下的數字中最多有多少個連續位與開獎號碼中的相同,則稱為中了幾個號。例如 小張寫的數字是 12345678,而開獎號碼是 42347856。則稱小張中了3個號,因為其中最長的相同連續...

第二屆藍橋杯 n進製小數

題目 n進製小數 將任意十進位制正小數分別轉換成2,3,4,5,6,7,8,9進製正小數,小數點後保留8位,並輸出。例如 若十進位制小數為0.795,則輸出 十進位制正小數0.795000 轉換成 2 進製數為 0.11001011 十進位制正小數0.795000 轉換成 3 進製數為 0.2101...

藍橋杯第九屆C組java 第二題

5只猴子是好朋友,在海邊的椰子樹上睡著了。這期間,有商船把一大堆香蕉忘記在沙灘上離去。第1只猴子醒來,把香蕉均分成5堆,還剩下1個,就吃掉並把自己的乙份藏起來繼續睡覺。第2只猴子醒來,重新把香蕉均分成5堆,還剩下2個,就吃掉並把自己的乙份藏起來繼續睡覺。第3只猴子醒來,重新把香蕉均分成5堆,還剩下3...