57 条题解
-
102
本题是数学题,x元买单价a的狗和单价b的动物。
问你一共有几种方案可以把钱花完。
这样考虑,for循环控制狗的个数,由于猫最少买一个,因此在狗上花的钱最多就是
,那么就是猫的个数,那么显然最少也是1个,最多就是个。
然后for循环开始挨个尝试,假如买了只狗以后,剩余的钱是b的倍数,那么这就算一个方案。 从i=1开始挨个尝试到最后,成功的方案,最后输出。
如果ans还是0,说明没有方案可以实现。
for(int i=1;i<=(x-b)/a;i++) { if((x-(i*a))%b==0) { ans++; } } if-else判断ans的情况输出对应的内容即可
-
31
枚举
这道题不难,用枚举就可以,最简单的枚举的虽然可以过,但我还是想优化一下。
最简单的自然是枚举小狗只数、小猫只数,但我们还可以改进枚举方案,改进后循环
(x-b)/a
次即可。
只枚举小狗只数
- 我们可以枚举小狗只数,之后判断剩余的钱数是否能被小猫只数整数即可。
- 小狗的循环次数也可以改进,因为至少有一只小猫,所以小狗只数的为1—
(x-b)/a
。优化完成。
总结
- 定义变量sum为0,输入x、a、b。
- 将a从1—
(x-b)/a
枚举 - 判断买完i只小狗剩余的钱数是否能被b整除,如果可以,sum++。
- 输出sum。
AC代码(求赞)
#include <bits/stdc++.h> using namespace std; int main() { int x,a,b,sum=0; cin>>x>>a>>b; for (int i=1;i<=(x-b)/a;i++) {//枚举a可能的只数。 if ((x-i*a)%b==0) { sum+=1; }//判断买完a后的钱是否能整除b,如果能sum++。 } cout<<sum;//方案数加一。 return 0; }
-
20
这题暴力枚举, 就能完成了! 代码如下👎 (有点儿长):
#include <iostream> using namespace std; int main() { int x, a, b, num = 0; //num是计数变量; cin >> x >> a >> b; for (int i = 1; i <= x / a; i++) // 从1个开始,到能够买狗的最多数量; { for (int j = 1; j <= x / b; j++) { //从1个开始, 到能够买猫的最多数量; if (a * i + b * j == x) { //买狗的总价 + 买猫的总价 = 有的钱; num++; //方案数加一; } } } cout << num; return 0; }
C++萌新,有错误请指出!❤️ 欢迎复制,参考,评论!🚀️ 最后,
一个👍
谢谢! 最后的最后,寻求大佬们:指针是个啥??
-
15
不会吧,这么简单 应该都会吧......(先赞 后看!养成习惯!)
#include <iostream> // 瓦是不会告诉你有万能头文件这种东西的 using namespace std; int main() { int x,a,b,sum=0; cin>>x>>a>>b;//输入 for(int i=1;i<=(x-b)/a;i++) { if((x-(i*a))%b==0) { sum++;//累计方案总数 } } cout<<sum;//输出 return 0; }
制作不易,给个赞吧,球球了...... 有什么问题,联系我,邮箱是
ASheepBoy_Bed@163.com
-
1
怎么说呢,还是比较简单的😕
阿巴阿巴,题解如下
😄
#include <iostream>
using namespace std;
int main()
{
int n, a, b, sum = 0;
cin >> n >> a >> b;
for (int i = 1; i <= n / a; i++)
{
if ((n - i * a >= b) && (n - i * a) % b == 0)
{ sum++;
}
}
cout << sum << endl;
return 0;
}
已AC,请放心食用🎉️ 🚀️
100 Accepted
# 状态分数 耗时 内存占用 ------------------------------------- #1 Accepted33 1ms 6.9 MiB - #2 Accepted33 1ms 7.5 MiB #3 Accepted34 7.6 MiB 求赞!!!❤️
信息
- ID
- 8
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 6
- 标签
- 递交数
- 9829
- 已通过
- 3210
- 上传者