xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡(jiǎn)介

硬幣找錢問題 問題描述 設(shè)有6種不同面值的硬幣,各硬幣的面值分別為5分,1角,2角,5角,1元,2元。現(xiàn)要用這些面值的硬幣來購(gòu)物和找錢。購(gòu)物時(shí)規(guī)定了可以使用的各種面值的硬幣個(gè)數(shù)。 假定商店里各面值的硬幣有足夠多,顧客也可用多種方式支付。在1次購(gòu)物中希望使用最少硬幣個(gè)數(shù)。例如,1次購(gòu)物需要付款0.55元,沒有5角的硬幣,只好用2*20+10+5共4枚硬幣來付款。如果付出1元,找回4角5分,同樣需要4枚硬幣。但是如果付出1.05元(1枚1元和1枚5分),找回5角,只需要3枚硬幣。這個(gè)方案用的硬幣個(gè)數(shù)最少。 您的任務(wù):對(duì)于給定的各種面值的硬幣個(gè)數(shù)和付款金額,計(jì)算使用硬幣個(gè)數(shù)最少的交易方案。 輸入 有若干行測(cè)試數(shù)據(jù)。每一行有6個(gè)整數(shù)a5、a4、a3、a2、a1、a0和1個(gè)有2位小數(shù)的實(shí)數(shù)money,分別表示5分,1角,2角,5角,1元,2元面值的硬幣個(gè)數(shù)和付款金額,money<=1000。文件以6個(gè)0結(jié)束(不必處理)。 輸出 對(duì)每一行測(cè)試數(shù)據(jù),一行輸出最少硬幣個(gè)數(shù)。如果不可能完成交易,則輸出“impossible”。 輸入樣例 2 4 2 2 1 0 0.95 2 4 2 0 1 0 0.55 0 0 0 0 0 0 輸出樣例 2 3

資源截圖

代碼片段和文件信息

#include?
#include?
using?namespace?std;


int?coins[6];//各面值硬幣數(shù)
int?count=0;//需要的最少硬幣數(shù)
int?costc[6]={?5?102050100200};//需支付數(shù)和硬幣面值以分計(jì)算
ifstream?input(“input.txt“)?;
ofstream?output(“output.txt“);
void?getData()
{

for(int?i=0;i<6;i++)
{
input>>coins[i];

}
double?costt;
input>>costt;
cost=(int)(costt*100);//將輸入的錢轉(zhuǎn)為?分

cout< for(?i=0;i<6;i++)
{
cout< }
}

int?contains(int?a)
{
for(int?i=0;i<6;i++)
{
if(c[i]==a&&coins[i]>0)return?i;
}
return?-1;
}

void?getMinCount()
{
for(int?i=5;i>=0;i--)
{
if(coins[i]>0)
{ int?*cc=(int?*)malloc((i+1)*sizeof(int));//開辟新數(shù)組來保存虛擬幣值的數(shù)量
???? cc[0]=0;
for(int?k=1;k {
cc[k]=c[k-1];
}
for(int?j=0;j<1+i;j++)
{

if(cost>=(c[i]-cc[j]))
{
if(coins[i]>=cost/(c[i]-cc[j]))//當(dāng)前面值硬幣如果足夠支付余額
{ count+=cost/(c[i]-cc[j])+1;

if(contains(c[i]-cc[j])!=-1)
{
count--;//如果消費(fèi)者具有該硬幣,則無(wú)需使用找零,因?yàn)檎伊阈枰馁M(fèi)2個(gè)硬幣,而支付只需要一個(gè)硬幣
coins[contains(c[i]-cc[j])]-=cost/(c[i]-cc[j]);//相應(yīng)硬幣數(shù)減少
}
else?coins[i]-=cost/(c[i]-cc[j]);//找零法相應(yīng)硬幣數(shù)減少
// cout< cost=cost%(c[i]-cc[j]);
if(contains(c[i])==-1)break;//如果該硬幣用完,無(wú)需繼續(xù)計(jì)算,用下一個(gè)小面值的吧
}
else?//如果當(dāng)前幣值不夠支付,則用完該幣值
{
count+=coins[i];
cost=cost-c[i]*coins[i];
coins[i]=0;
}

?
}

}
}

}

if(count==0||cost!=0){cout< else
{
cout< for(?i=0;i<6;i++)
{
cout< }
cout< }

}


void?main()
{
while(!input.eof())
{
count=0;
getData();
???? getMinCount();
}
input.close();
output.close();


}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件?????????82??2011-04-07?10:15??input.txt

?????文件???????2136??2011-04-07?10:42??4-3.cpp

-----------?---------??----------?-----??----

?????????????????2218????????????????????2


評(píng)論

共有 條評(píng)論

相關(guān)資源