- 你最终得到的面包数量为:你实际买的面包数量+老板送你的面包数量
- 实际买的面包数量:金钱数÷一个面包的价格,向下取整
- 老板送你面包的数量:你买的面包能凑够几个c数量:实际购买的面包数量÷c,向下取整,最终老板送你的为凑够c的数量×d
- 综上答案为 longlong(ba)+longlong(b∗ca)∗d
代码:
// #pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i, a, n) for (int i = a; i <= n; i++)
#define per(i, a, n) for (int i = n; i >= a; i--)
#define lowbit(x) ((x) & -(x))
#define lson p << 1, l, mid
#define rson p << 1 | 1, mid + 1, r
#define mem(a, b) memset(a, b, sizeof(a))
#define IOS \
ios::sync_with_stdio(false); \
cin.tie(0); \
cout.tie(0)
ll a, b, c, d;
ll solve()
{
ll ans = 0;
cin >> a >> b >> c >> d;
ll cnt1 = a / b; //能买多少面包
ll cnt2 = cnt1 / c; // 能被送几次
ans = cnt1 + cnt2 * d;
return ans;
}
int main()
{
IOS;
int n;
cin >> n;
while (n--)
{
cout << solve() << "\n";
}
return 0;
}