2059:【例3.11】买笔
2059:【例3.11】买笔
提交数: 50326 通过数: 26989
【题目描述】
期末来临了,班长小Q决定将剩余班费xx元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为66元、55元和44元。小Q想买尽量多的笔(鼓励尽量多的同学),同时他又不想有剩余钱。请您编一程序,帮小Q制订出一种买笔的方案。
【输入】
一个正整数xx(剩余班费)。
【输出】
一行,依次为6元、5元和4元钱笔的数目,用一个空格隔开。
【输入样例】
10
【输出样例】
1 0 1
【解题思路】
要想多买笔,要尽量多买便宜的那一款。把x元用来买4元的笔,能买x/4个4元的笔。假设买后剩下y元。
如果y为0,那么不做操作。
如果y为1,那么将一支4元的笔换做5元的。
如果y为2,那么将一支4元的笔换做6元的。
如果y为3,那么将一支4元的笔换做6元的,一支4元的笔换做5元的。
1 #include<iostream> 2 int main(){ 3 int a,b,c,x,y; 4 scanf("%d",&x); 5 c=x/4; 6 y=x%4; 7 switch (y) { 8 case 0: 9 a=0; 10 b=0; 11 printf("%d %d %d",a,b,c); 12 break; 13 case 1: 14 a=0; 15 b=1; 16 c--; 17 printf("%d %d %d",a,b,c); 18 break; 19 case 2: 20 a=1; 21 b=0; 22 c--; 23 printf("%d %d %d",a,b,c); 24 break; 25 case 3: 26 a=1; 27 b=1; 28 c-=2; 29 printf("%d %d %d",a,b,c); 30 break; 31 } 32 return 0; 33 }