习题4-5 换硬币 (20分)
生活随笔
收集整理的這篇文章主要介紹了
习题4-5 换硬币 (20分)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
習(xí)題4-5 換硬幣 (20分)
將一筆零錢換成5分、2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?
輸入格式: 輸入在一行中給出待換的零錢數(shù)額x∈(8,100)。
輸出格式: 要求按5分、2分和1分硬幣的數(shù)量依次從大到小的順序,輸出各種換法。每行輸出一種換法,格式為:“fen5:5分硬幣數(shù)量,
fen2:2分硬幣數(shù)量, fen1:1分硬幣數(shù)量, total:硬幣總數(shù)量”。最后一行輸出“count = 換法個(gè)數(shù)”。
輸入樣例: 13
輸出樣例:fen5:2, fen2:1, fen1:1, total:4fen5:1, fen2:3, fen1:2, total:6 fen5:1, fen2:2, fen1:4, total:7fen5:1, fen2:1, fen1:6, total:8 count = 4 #include<stdio.h> int main(void) {int fen5,fen2,fen1;fen5=fen2=fen1=0;int n,cnt,cntprint,a,b; //cnt記錄拆分5分的次數(shù),cntprint記錄打印一行的次數(shù)cnt=0; cntprint=0;scanf("%d",&n);a=n/5; b=n%5; //a表示5分最多有多少個(gè),b為余數(shù)if(b==0){a--;cnt++;}do{ fen5=a;fen2=5*cnt/2+b/2; //5分中拆出來的2+余數(shù)中的2fen1=b%2+(5*cnt)%2; //5的余數(shù)再除以2的余數(shù)(n/5/2=1)+5分拆出來的余數(shù)1do{if(fen1!=0) {printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",fen5,fen2,fen1,fen1+fen2+fen5);cntprint++; //記錄打印次數(shù)}fen2--;fen1+=2;}while(fen2>=1);a--;cnt++;}while(a>=1);printf("count = %d",cntprint);return 0; }一題斷斷續(xù)續(xù)做了一下午。。。。。。。
總結(jié)
以上是生活随笔為你收集整理的习题4-5 换硬币 (20分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VB代码窗口鼠标滚轮的使用
- 下一篇: 如何计算文件MD5 sha1 --