问题标题: 酷町堂:1237 买文具

1
0

0
已采纳
宋梓涵
宋梓涵
新手光能
新手光能
思路:

这道题要求要买尽量多的文件,所以应该多买价格低的,也就是尺子(3元)

先把x%3,(买尺子),用a,b,c分别表示钢笔,本子,尺子的数量

应该用switch或if判断以下几种情况:

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

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

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

(因为尺子的价格为3,所以不可能出现余数大于或等于3)


核心代码:
    int a,b,c,x,y;
    输入>>x;
    c=x/3;
    y=x%3;
    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;
    }
    输出<<a<<" "<<b<<" "<< c;
宋梓涵在2018-09-13 19:34:17追加了内容

采纳的人是大帅哥!!!

1
傅文彬
傅文彬
新手天翼
新手天翼

思路如下:

若x/3没有剩的钱,则全买尺子;若x/3支3元的尺子,还剩1元,则3元的必少买一只,则4元的笔记本少买一个,换成一只5元的钢笔即可;若x/3个3元的笔记本,还剩2元,则4元的笔记本少买一本,换成一只5元的笔即可;

代码如下:

定义 a,b,c,x,y;

输入>>x;

c=x/3;

y=x%3;

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;

}

输出<<a<<" "<<b<<" "<< c;

0
0
我要回答