期末来临了,班长小Q决定将剩余班费X元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为6元、5元和4元。小Q想买尽量多的笔(鼓励尽量多的同学),同时他又不想有剩余钱。请您编一程序,帮小Q制订出一种买笔的方案。
【分析】对于以上的实际问题,要买尽量多的笔,易知都买4元的笔肯定可以买最多支笔。因此最多可买的笔为x/4支。由于小q要把钱用完,故我们可以按以下方法将钱用完:
若买完x/4支4元钱的笔,还剩1元,则4元钱的笔少买1支,换成一支5元笔即可;
若买完x/4支4元钱的笔,还剩2元,则4元钱的笔少买1支,换成一支6元笔即可;
若买完x/4支4元钱的笔,还剩3元,则4元钱的笔少买2支,换成一支5元笔和一支6元笔即可。
从以上对买笔方案的调整,可以看出笔的数目都是x/4,因此该方案的确为最优方案。
班费钱数
分别输出买4块钱钢笔、5块钱钢笔和6块钱钢笔的数量,中间以空格隔开
100
25 0 0
101
24 1 0
103
23 1 1