换硬币将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
生活随笔
收集整理的這篇文章主要介紹了
换硬币将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
將一筆零錢換成5分、2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?
輸入格式:
輸入在一行中給出待換的零錢數額x∈(8,100)。
輸出格式:
要求按5分、2分和1分硬幣的數量依次從大到小的順序,輸出各種換法。每行輸出一種換法,格式為:“fen5:5分硬幣數量, fen2:2分硬幣數量, fen1:1分硬幣數量, total:硬幣總數量”。最后一行輸出“count = 換法個數”。
輸入樣例:
13輸出樣例:
fen5:2, fen2:1, fen1:1, total:4 fen5:1, fen2:3, fen1:2, total:6 fen5:1, fen2:2, fen1:4, total:7 fen5:1, fen2:1, fen1:6, total:8 count = 4 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; int main(){int x;cin>>x;int count=0;for(int i=(x-3)/5;i>=1;i--){for(int j=(x-5*i-1)/2;j>=1;j--){int k=x-5*i-2*j;int total=i+j+k; // printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",i,j,k,total);cout<<"fen5:"<<i<<", fen2:"<<j<<", fen1:"<<k<<", total:"<<i+k+j<<endl;count++;}} // for(int i=1;i<=n;i++){ // for(int j=1;j<=n;j++){ // for(int k=1;k<=n;k++){ // if((i+2*j+5*k)==n){ // cout<<"fen5:"<<k<<", fen2:"<<j<<", fen1:"<<i<<", total:"<<i+k+j<<endl; // sum++; // } // } // } // }cout<<"count = "<<count;return 0; }總結
以上是生活随笔為你收集整理的换硬币将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 限制网络带宽的软件Netlimiter
- 下一篇: 高性能计算机重要的配件,电脑配件大盘点,