下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、找零問題貪心算法實(shí)現(xiàn)精品文檔找零問題貪心算法實(shí)現(xiàn)一、實(shí)驗描述當(dāng)前有面值分別為2 角 5 分, 1 角, 5 分, 1 分的硬幣,請給出找n 分錢的最佳方案(要求找出的硬幣數(shù)目最少)。二、實(shí)驗原理具體實(shí)例:假如老板要找給我99 分錢,他有上面的面值分別為25,10, 5, 1 的硬幣數(shù),為了找給我最少的硬幣數(shù),那么他是不是該這樣找呢,先看看該找多少個25 分的, 99 253,好像是 3 個,要是 4 個的話,我們還得再給老板一個1分的,我不干,那么老板只能給我3 個 25 分的拉,由于還少給我24,所以還得給我 2個 10分的和 4個1分。具體實(shí)現(xiàn):/找零錢算法/By falcon/輸入:數(shù)組
2、 m,依次存放從大到小排列的面值數(shù),n 為需要找的錢數(shù),單位全部為分/輸出:數(shù)組 num,對照數(shù)組 m 中的面值存放不同面值的硬幣的個數(shù),就找錢方案參考實(shí)驗代碼部分。三、實(shí)驗代碼#ifndef LEASTCOINS_H#define LEASTCOINS_Hclass LeastCoinspublic:LeastCoins();收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系管理員刪除精品文檔LeastCoins();void run();private:int number; /不同面值的硬幣個數(shù)int TotalMoney; /要找回的總錢數(shù)int *T; /存儲硬幣的面值int *Coins; /硬幣的個數(shù)i
3、nt *m; / mij是以 最大面值 i 要找回錢數(shù)是 j 需要硬幣數(shù)的最少個數(shù)bool input();int changeMoney(int i,int j); / i是 第 i 中硬幣void output();void traceback(); /尋找 軌跡;#endif#include <iostream.h>#include <fstream.h>#include <cstdlib>#include <iomanip.h>#define N 10ifstream inputFile("input.txt",ios
4、:out);ofstream outputFile("output.txt",ios:out);LeastCoins:LeastCoins()number=0;TotalMoney=0;T=new int N;Coins=new int N;m=new int *N;for (int i=0;i<N;i+)mi=new int N*N;LeastCoins:LeastCoins()delete T;delete Coins;for (int i=0;i<N;i+)delete mi;delete m;void LeastCoins:run() if (input
5、() changeMoney(number,TotalMoney); output(); bool LeastCoins:input()inputFile>>number;outputFile<<" 有 "<<number<<" 不同的硬幣 ."<<endl; outputFile<<setw(4)<<" 面值 "<<setw(7)<<" 個數(shù) "<<endl; int sum=0;收集于網(wǎng)絡(luò),如
6、有侵權(quán)請聯(lián)系管理員刪除精品文檔for (int i=1;i<=number;i+)inputFile>>Ti; inputFile>>Coinsi;outputFile<<setw(3)<<Ti<<setw(3)<<" "<<setw(3)<<Coinsi<<endl;sum+=Ti*Coinsi;inputFile>>TotalMoney;outputFile<<" 需要找回的總錢數(shù)為: "<<Total
7、Money<<endl;if (T!=NULL && Coins!=NULL)if (sum>=TotalMoney)return true;elseoutputFile<<" 所有硬幣的總錢數(shù)是"<<sum<<"小于需要找回的總錢數(shù)"<<TotalMoney<<endl;return false;return false;int LeastCoins:changeMoney(int i,int j)if (i>1) if (j<Ti) /要找的錢數(shù)
8、小于 該硬幣的面值mi-1j=changeMoney(i-1,j);mij=mi-1j;return mij;elseint X=j/Ti;X=(X<Coinsi ? X : Coinsi) ;int T1=changeMoney(i-1,j-X*Ti);int T2=changeMoney(i-1,j-(X-1)*Ti);mi-1j-X*Ti=T1;mi-1j-(X-1)*Ti=T2;if (T1+X)>(T2+X-1)mij=T2+X-1;else mij=T1+X;return mij;else if(i=1)/此時 i=1if (j%T1)=0 && (j/
9、T1<=Coins1)m1j=j/T1;return m1j;else return 1000000;else return 1000000;void LeastCoins:output()if (mnumberTotalMoney<1000000) /判斷是否有解outputFile<<" 需要最少的硬幣個數(shù)是 : "<<mnumberTotalMoney<<endl; outputFile<<setw(4)<<" 面值 "<<setw(7)<<"
10、 個數(shù) "<<endl;traceback();else outputFile<<"無解 "<<endl;收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系管理員刪除精品文檔void LeastCoins:traceback()int j=TotalMoney;for (int i=number;i>=2;i-)int X=j/Ti; /最多需要面值為Ti 的硬幣的個數(shù)X=(X<Coinsi ? X : Coinsi) ; /取 X 和 Coinsi 的較小值int T1=mi-1j-X*Ti+X;int T2=mi-1j-(X-1)*Ti
11、+X-1;if (T1<T2)outputFile<<setw(3)<<Ti<<setw(3)<<" "<<setw(3)<<X<<endl; j-=X*Ti;elseoutputFile<<setw(3)<<Ti<<setw(3)<<" "<<setw(3)<<(X-1)<<endl;j-=(X-1)*Ti;outputFile<<setw(3)<<Ti<<setw(3)<<" "<<setw(3)&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)說明書樣本
- 整體廚房裝修設(shè)計承包范本
- 2024混凝土道路施工合同樣本
- 2024品牌代理經(jīng)營合同版
- 廣西壯族自治區(qū)七年級上學(xué)期語文期中測試試卷10套【附答案】
- 廣告設(shè)計制作合作方案
- 保健食品委托代理銷售協(xié)議書
- 設(shè)備維修承包合同2024年
- 2023年高考地理第一次模擬考試卷-(湖北B卷)(考試版)
- 2023年高考地理專題復(fù)習(xí)新題典題精練-洋流(解析版)
- 新產(chǎn)品試制流程管理辦法
- 通用橫版企業(yè)報價單模板
- 潛油泵及潛油泵加油機(jī)講義
- 物業(yè)服務(wù)公司各崗位規(guī)范用語
- 醫(yī)患溝通內(nèi)容要求記錄模板(入院、入院三日、術(shù)前、術(shù)后、出院)
- 航海學(xué)天文定位第四篇第6章天文定位
- 淺談深度教學(xué)中小學(xué)數(shù)學(xué)U型學(xué)習(xí)模式
- 物理電學(xué)暗箱專題30道
- 裝修公司員工勞動合同
- 江西上饒鉛山汽車駕駛科目三考試線路
- 通過一起放火案件淺析放火案件的移交工作
評論
0/150
提交評論