分析问题
题目要求用给定的金额 x 购买至少各一只小狗和小猫,且钱必须刚好用完。需要统计所有满足条件的购买方案数。
- 约束条件:
- 小狗数量 dog 和小猫数量 cat 均为正整数。
- 总金额满足方程:A*dog+B*cat=X。
- 遍历范围:
由于每只小狗价格为 A,dog数据范围为1 至 A*a<X。
建立模型
- 穷举所有可能的狗的数量:
遍历 dog 从1 至 A * dog < X remain = X- A*dog- 验证剩余金额:
计算剩余金额 remaining=X−A*maining。若剩余金额满足 remaining / B 能整除,则对应的小猫数量 cat=remaining/B 是有效解。
编写代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int x,A,B,remain,dog,cat,count=0;
cin>>x>>A>>B;
for(int i=1;i*A<x;i++){
dog = i;
remain= x-i*A;
cat=remain/B;
if((dog*A+cat*B)==x)
// cout<<i<<" "<<cat<<"\n";
count++;
}
cout<<count;
return 0;
}