2059:【例3.11】买笔

发布时间 2023-10-27 13:33:14作者: 源谋人

2059:【例3.11】买笔

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 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 }

 

提交 统计信息 提交记录