1 条题解
-
0
思路分析
1. 任务拆解:
- 读取总金额n、大碗单价x、小碗单价y
- 找出所有花光n元的购买方案
- 要求两种碗都买,且数量都是偶数
2. 关键点分析:
- 大碗数量i必须是偶数:从2开始,每次加2
- 小碗数量j必须是偶数:从2开始,每次加2
- 需要满足:i × x + j × y = n
- 使用双重循环枚举所有可能的偶数组合
3. 步骤规划:
- 读取n, x, y的值
- 计算最多能买的大碗数量xg = n/x
- 计算最多能买的小碗数量yg = n/y
- 外层循环枚举大碗数量(从2到xg,步长为2)
- 内层循环枚举小碗数量(从2到yg,步长为2)
- 检查当前组合是否正好花光n元
- 满足条件则输出方案
4. 代码对应:
int n,x,y; cin>>n>>x>>y;→ 读取输入数据int xg=n/x,yg=n/y;→ 计算最多能买的碗数for(int i=2;i<=xg;i+=2)→ 枚举大碗数量(偶数)for(int j=2;j<=yg;j+=2)→ 枚举小碗数量(偶数)if(i*x+j*y==n)→ 检查是否正好花光钱cout<<i<<" "<<j<<endl;→ 输出购买方案
- 1
信息
- ID
- 230
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 470
- 已通过
- 260
- 上传者