标签: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美分)
标签:change maker problem-找零(1-99美分)
原文地址:http://9320314.blog.51cto.com/9310314/1547125