小歪正在商店里出售牛可乐抱枕,,a元b个,隔壁c元d个,现在要求小歪的每个单价严格小于隔壁即小歪重新设定一个最大整数 amax ,使得amax/b<c/d,但要使每天的价格尽可能的高,先输入天数T,在输入T组a,b,c,d,输出差价a-amax的值.c++实现
时间: 2024-12-06 19:25:33 浏览: 9
小歪在商店里销售牛可乐抱枕,原价是a元买b个,而隔壁店的价格是c元可以购买d个。为了保持价格优势,小歪希望他的单价始终低于隔壁,为此他需要找到一个最大的整数amax(满足amax/b < c/d),同时保证价格尽可能高。
首先,你需要编写一个C++程序来解决这个问题。这个程序的基本步骤如下:
1. **输入**:接受用户输入,包括天数T以及每一天的四个价格参数a、b、c、d。
2. **计算**:对于每一天,使用条件`amax = max(amax, a * d / c)`更新amax,这里`max`函数用于获取两个数的最大值,因为amax应该是a的价格除以c的最小倍数大于等于d的值。
3. **比较**:确保amax/b确实小于c/d,如果满足,则保留这个amax。
4. **输出**:对于每组输入,计算差价a - amax并打印出来。
```cpp
#include <iostream>
using namespace std;
int main() {
int T;
cin >> T; // 输入天数
for(int t = 0; t < T; ++t) {
int a, b, c, d;
cin >> a >> b >> c >> d;
int amax = 0;
while (a * d <= c * b) { // 更新amax直到满足条件
amax++;
}
double priceDiff = static_cast<double>(a) - static_cast<double>(amax);
cout << "Day " << t+1 << ": Price difference is " << priceDiff << endl;
}
return 0;
}
```
阅读全文