问题标题: 酷町堂:求大神求解1237 买文具!!

0
0
已解决
王梓澳
王梓澳
中级光能
中级光能

题目:

1237   买文具

题目描述 Description

元旦快到了,班长小明决定将剩余的班费X元钱,用于购买文具奖励大家。已知钢笔5元一支,笔记本4元一本,尺子3元一把。小明想买尽量多的文具(鼓励尽量多的同学),同时他又不想有剩余的钱。请你帮小明制定一种买文具的方案并输出每种文具的数目。(要求输出的答案字典序尽量大)

输入描述 Input Description

输入一行,为剩余班费X。X为整数,10=<X<=100。

输出描述 Output Description

输出一行,分别为钢笔的数目,笔记本的数目,尺子的数目,每两个数之间用一个空格隔开。

样例输入 Sample Input

 

10

样例输出 Sample Output

 

0 1 2

数据范围及提示 Data Size & Hint

字典序举例:三个数字排列来说,3 2 1大于2 3 1 大于1 2 3

题目网址1237 买文具

怎么做??


0
已采纳
陆麟瑞
陆麟瑞
资深天翼
资深天翼

这道题用到一个贪心的思想。

1.如果余数为0,那么全买尺子

2.如果余数为1,那么为了不剩钱就去掉一个尺子,加上一个本子

3.如果余数为2,那么也是为了不剩钱去掉一个尺子,加上一支钢笔

if(x%3==1)
    {   num3=x/3-1;
        num2=num2+1;
        cout<<num1<<" "<<num2<<" "<<num3;
    }
    else if(x%3==2)
        {
            num3=x/3-1;
            num1=num1+1;
            cout<<num1<<" "<<num2<<" "<<num3;
        }
最后一种情况就是x%3==0,这时候num3=x/3;

0
0
我要回答