当前位置: 首页 > 工具软件 > Cappuccino > 使用案例 >

第二届太原理工大学程序设计新生赛决赛-(Cappuccino ~ the end of journey-M)简单模拟

燕超
2023-12-01

题目描述
经过一番旅途,Vanis回到了原来的世界,现在他只想给自己倒几杯卡布奇诺 (cappuccino)。

商店街有一家咖啡厅,提供两种购买卡布奇诺的方式:

  1. 支付a元,获得1杯卡布奇诺。
  2. 支付b元,获得c杯卡布奇诺。

现在Vanis有d元,并且可以无限次任意选择购买方案(只要他的钱还足够),他想知道最多能买几杯卡布奇诺。

输入描述:
第一行输入四个正整数a,\ b,\ c,\ da, b, c, d,相邻整数之间使用一个空格符分隔,含义同题目描述。

数据规范:

  • 1 \le a,b,c,d \le 1001≤a,b,c,d≤100.
    输出描述:
    输出一个整数,表示Vanis最多能够购买的卡布奇诺杯数。
    示例1
    输入
    复制
    3 10 3 12
    输出
    复制
    4
    说明
    3元1杯,10元3杯。Vanis选择4次方案1,可以得到4杯卡布奇诺。如果他选择了方案2,则只能购买3杯,因为剩下的2元钱不足以让他再选择任何方案,显然这样不是最多购买数。
    题意思路:比较简单如题面所知,只要是想记录一下比较简洁的一个代码思路吧,比赛那个打的太麻烦了。
    代码:
#include<bits/stdc++.h>
using namespace std;
int main ()
{
    ios::sync_with_stdio(false);
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    int t1=b/c;
    int ans=0;
    if(a<=t1){//两种方式比较谁用的钱少,就先用谁,剩下的钱去花另一种,主要注意一下“取余”可以简洁很多。
        ans=ans+d/a+((d%a)/b)*c;
    }
    else{
        ans=ans+(d/b)*c+(d%b)/a;
    }
    cout<<ans<<endl;
    return 0;
}

 类似资料: