首页 > 代码库 > Change maker problem-找零(1-99美分)

Change maker problem-找零(1-99美分)

Change maker problem-找零(1-99美分),允许重复计算:

//Change maker problem-找零(1-99美分)
#include<iostream>
using namespace std;

void compute_coins(int coin_value,int& number,int& amount_left);

int main()
{
    int cents,number[2],amount_left;
    char ans;
    
    do{
        cout<<"Enter the (1-99)cents:\n";
        cin>>cents;
        number[0]=number[1]=number[2] = {0};
        amount_left = cents;
        while(amount_left > 0)
            {
                if(amount_left >= 25)
                    {
                        compute_coins(25,number[0],amount_left);   
                        compute_coins(10,number[1],amount_left);
                        compute_coins(1,number[2],amount_left);
                    }
                else if(amount_left >= 10 && amount_left < 25)
                    {
                        compute_coins(10,number[1],amount_left);
                        compute_coins(1,number[2],amount_left);
                    }
                else if(amount_left >= 1 && amount_left < 10)
                    compute_coins(1,number[2],amount_left);
                
            }
        cout<<cents<<" cents can be given as "<<endl
            <<number[0]<<" quarter(s) "<<number[1]<<" dime(s) and "<<number[2]<<" penny(pennies)"<<endl;
        
        cout<<"Do you want again?";
        cin>>ans;
    }while(‘y‘ == ans || ‘Y‘ == ans);
}

void compute_coins(int coin_value,int& number,int& amount_left)
{
    switch(coin_value)
    {
        case 25:
            number = amount_left/25;
            amount_left = amount_left % coin_value;
            break;
        case 10:
            number = amount_left/10;
            amount_left = amount_left % coin_value;
            break;
        case 1:
            number = amount_left/1;
            amount_left = amount_left % coin_value;
            break;
        default:
            cout<<"ERROR!";
    }
}

结果:

Enter the (1-99)cents:
86
86 cents can be given as 
3 quarter(s) 1 dime(s) and 1 penny(pennies)
Do you want again?y
Enter the (1-99)cents:
25
25 cents can be given as 
1 quarter(s) 0 dime(s) and 0 penny(pennies)
Do you want again?y
Enter the (1-99)cents:
10
10 cents can be given as 
0 quarter(s) 1 dime(s) and 0 penny(pennies)
Do you want again?y
Enter the (1-99)cents:
1
1 cents can be given as 
0 quarter(s) 0 dime(s) and 1 penny(pennies)
Do you want again?


Change maker problem-找零(1-99美分)