【题目描述及其目的】
2059:【例3.11】买笔
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 18120 通过数: 9500
【题目描述】
期末来临了,班长小Q决定将剩余班费x元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为6元、5元和4元。小Q想买尽量多的笔(鼓励尽量多的同学),同时他又不想有剩余钱。请您编一程序,帮小Q制订出一种买笔的方案
【输入】
一行,依次为6元、5元和4元钱笔的数目,用一个空格隔开。
【输出】
运算表达式的结果。
【输入样例】
【输出样例】
【题目链接】
ybt 2059:【例3.11】买笔
【题目考点】
1. if…else if语句
【解题思路】
要想多买笔,要尽量多买便宜的那一款。把x元用来买4元的笔,能买x/4个4元的笔。假设买后剩下y元。
如果y为0,那么不做操作。
如果y为1,那么将一支4元的笔换做5元的。
如果y为2,那么将一支4元的笔换做6元的。
如果y为3,那么将一支4元的笔换做6元的,一支4元的笔换做5元的。
【源代码】
#include<iostream>
using namespace std;
int main()
{
int a, b, c, x, y;
cin >> x;
c = x / 4;
y = x % 4;
switch(y)
{
case 0: a = 0; b = 0; break;
case 1: a = 0; b = 1; c --; break;
case 2: a = 1; b = 0; c --; break;
case 3: a = 1; b = 1; c -= 2; break;
}
cout << a << ' ' << b << ' ' << c << endl;
return 0;
}