B3836 [GESP202303 二级] 百鸡问题
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e3+10,inf = 0x3f3f3f3f; int main() { int x,y,z,n,m; //公鸡x元,母鸡y元,小鸡z只1元,共有n元要买m只鸡 cin >> x >> y >> z >> n >> m; int sum = 0; //统计方案数 for(int i = 0; i <= n / x; i++) //公鸡i,最少0只,最多n元/x元 只 for(int j = 0; j <= n / y; j++)//母鸡j,最少0只,最多n/y只 { int k = (n - i * x - j * y) * z; //剩下的钱 * z就是买小鸡的数量 if(i + j + k == m && k >= 0) //如果公鸡i + 母鸡j + 小鸡z刚好m只,且小鸡经过减法后依然为正数,说明是合法解 sum++; } cout << sum; return 0; }

浙公网安备 33010602011771号