資源簡介
設有n種不同面值的硬幣,各硬幣的面值存于數組T〔1:n〕中。現要用這些面值的硬幣來找錢。可以使用的各種面值的硬幣個數存于數組Coins〔1:n〕中。
對任意錢數0≤m≤20001,設計一個用最少硬幣找錢m的方法。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Text;
using?System.Windows.Forms;
namespace?coinsanswer
{
????public?partial?class?Form1?:?Form
????{
????????int[]?t?=?new?int[5];
????????int?[]?sum=new?int?[55];
????????int?i?=?0;
????????int?k?=?0;
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????private?void?button1_Click(object?sender?EventArgs?e)
????????{???
?????????????t[0]=Convert?.ToInt16?(?label2?.Text);?
?????????????t[1]=?Convert?.ToInt16?(label3?.Text);
?????????????t[2]=?Convert?.ToInt16?(label4?.Text);
?????????????t[3]=?Convert?.ToInt16?(label5?.Text);
?????????????t[4]=?Convert?.ToInt16?(label6?.Text);
????????????//t有序
????????????
???????????????????label1.Text?=?coin(t?Convert.ToInt16(textBox1.Text)?sum?).ToString();
????????}
????????public?int?coin(int[]?t?int?c?int[]?sum)
????????{
????????????int?temp?=?0?ys?=?c?result?=?k?;
????????????
????????????if?(i?>(t.Length-1))??return?k;
?????????????
????????????if?(result?==?0)
????????????????{?
????????????????for?(int?s?=?0;?s?<=?t.Length-1;?s++)
????????????????????if?((ys?/?t[s]?==?1)?&&?(ys%t[s]==0))?return?1;?
????????????????}
????????????????if?((ys??t[0]?&&?ys????????????????
???????????????else
????????????????????{
????????????????????????
????????????????????????sum[i?i]?=?ys?/?t[i];
????????????????????????temp?=?ys?%?t[i];
????????????????????????k?=?sum[i?i];
????????????????????????
????????????????????if?((i?==?0)&&(temp==0))?{?++i;?coin(t?ys?sum);?}?//全部用最小硬幣找
???????????????????
?????????????????????????while?(i ????????????????????????{????
????????????????????????????for?(int?j?=?i?-?1;?j?>=?0;?j--)//找錢
????????????????????????????{
????????????????????????????????
????????????????????????????????if?(temp?>=?t[j])
????????????????????????????????{
????????????????????????????????????sum[i?j]?=?temp?/?t[j];
????????????????????????????????????temp?=?temp?%?t[j];
????????????????????????????????}
????????????????????????????????else
????????????????????????????????????sum[i?j]?=?0;
????????????????????????????????????k?+=?sum[i?j];
????????????????????????????????
????????????????????????????}
????????????????????????????if?((temp?>?0)?&&?(sum[i?i]?>?1))//不能以這種方式找錢,直到找到一個可行方式
????????????????????????????{
????????????????????????????????sum[i?i]--;?k?=?sum[i?i];?temp?=?ys?%?sum[i?i];?continue;
????????????????????????????}
????????????????????????????else
????????????????????????????{
????????????????????????????????if?((temp?==?0)?&&?(k?????????????????????????????????{
????????????????????????????????????result?=?k;?i++;?break;
????????????????????????????????}
????????????????????????????????else?{?i++;?break;?}
???????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????20480??2010-09-15?18:22??coinsanswer\coinsanswer\bin\Debug\coinsanswer.exe
?????文件??????26112??2010-09-15?18:22??coinsanswer\coinsanswer\bin\Debug\coinsanswer.pdb
?????文件???????5632??2005-11-11?22:25??coinsanswer\coinsanswer\bin\Debug\coinsanswer.vshost.exe
?????文件???????3229??2010-09-09?19:54??coinsanswer\coinsanswer\coinsanswer.csproj
?????文件???????3264??2010-09-15?18:22??coinsanswer\coinsanswer\Form1.cs
?????文件???????7408??2010-09-12?16:37??coinsanswer\coinsanswer\Form1.Designer.cs
?????文件???????5814??2010-09-12?16:37??coinsanswer\coinsanswer\Form1.resx
?????文件????????296??2010-09-15?18:22??coinsanswer\coinsanswer\obj\coinsanswer.csproj.FileList.txt
?????文件????????842??2010-09-13?20:21??coinsanswer\coinsanswer\obj\Debug\coinsanswer.csproj.GenerateResource.Cache
?????文件??????20480??2010-09-15?18:22??coinsanswer\coinsanswer\obj\Debug\coinsanswer.exe
?????文件????????180??2010-09-13?20:21??coinsanswer\coinsanswer\obj\Debug\coinsanswer.Form1.resources
?????文件??????26112??2010-09-15?18:22??coinsanswer\coinsanswer\obj\Debug\coinsanswer.pdb
?????文件????????180??2010-09-12?08:54??coinsanswer\coinsanswer\obj\Debug\coinsanswer.Properties.Resources.resources
?????文件????????470??2010-09-09?19:33??coinsanswer\coinsanswer\Program.cs
?????文件???????1194??2010-09-09?19:33??coinsanswer\coinsanswer\Properties\AssemblyInfo.cs
?????文件???????2876??2010-09-09?19:33??coinsanswer\coinsanswer\Properties\Resources.Designer.cs
?????文件???????5612??2010-09-09?19:33??coinsanswer\coinsanswer\Properties\Resources.resx
?????文件???????1094??2010-09-09?19:33??coinsanswer\coinsanswer\Properties\Settings.Designer.cs
?????文件????????249??2010-09-09?19:33??coinsanswer\coinsanswer\Properties\Settings.settings
?????文件????????922??2010-09-09?19:33??coinsanswer\coinsanswer.sln
????..A..H.?????14336??2010-09-15?18:30??coinsanswer\coinsanswer.suo
?????目錄??????????0??2010-09-09?19:33??coinsanswer\coinsanswer\obj\Debug\TempPE
?????目錄??????????0??2010-09-12?16:03??coinsanswer\coinsanswer\bin\Debug
?????目錄??????????0??2010-09-15?18:22??coinsanswer\coinsanswer\obj\Debug
?????目錄??????????0??2010-09-09?19:33??coinsanswer\coinsanswer\bin
?????目錄??????????0??2010-09-12?08:54??coinsanswer\coinsanswer\obj
?????目錄??????????0??2010-09-09?19:33??coinsanswer\coinsanswer\Properties
?????目錄??????????0??2010-09-15?18:22??coinsanswer\coinsanswer
?????目錄??????????0??2010-09-09?19:33??coinsanswer
-----------?---------??----------?-----??----
............此處省略2個文件信息
- 上一篇:MVVM模式學習的
- 下一篇:c# 重寫的listbox 有比較好看的樣式
評論
共有 條評論