7-4 货币找零 (15分)

 

人民币的面值有100、50、20、10、5、2、1元。请你输出找零纸币数最少的方案

输入格式:

两个整数,分别表示付款金额和消费金额

输出格式:

输入找零方案。包含若干行,每行包含两个数字,纸币面额和纸币数量

输入样例:

10 3

输出样例:

在这里给出相应的输出。例如:

5 1
2 1

代码:

#include <iostream>
using namespace std;

int main(){
    int pay,cost;
    int i,amount;
    int value[7]={100,50,20,10,5,2,1};
    cin>>pay>>cost;
    int change = pay-cost;
    while(change!=0){
        //找出小于pay但 面值 最大的人民币  value[i]
        for(i=0;i<7;i++){ 
            if(change>=value[i]) break;
        }
        //确定要几张 
        amount = change/value[i];
        //更新 pay
        change = change - amount*value[i]; 
        //输出
        cout<<value[i]<<" "<<amount<<endl;    
    }
    return 0;
}
原文地址:https://www.cnblogs.com/lvjingyuan/p/13943961.html