萌新刚学 OI,A+B 求条
原题链接:1.A+B problem2025-10-02 21:36:08
发布于:广东
rt,我的做法是这样的:
- 当 或 时,通过“一一得一一二得二...”,可得出答案为另一个数,直接输出即可。
- 否则输出 与 的和。
对拍了 组了都没拍出结果,求大佬帮助。
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int n, m;
cin >> n >> m;
if(n == 1) cout << m;
else if(m == 1) cout << n;
else cout << n + m;
return 0;
}
全部评论 16
事实上你的变量名不对,题目中明确提到是A+B,而不是n+m,这属于你的读题不仔细,变量名出错将会严重影响程序输出!
5天前 来自 浙江
4但是容易发现,即使改了变量名依旧不能过,这需要让我们重新思考问题。
5天前 来自 浙江
1你给出的“一一得一一二得二...”源自《唐氏三百首》中的《九九乘法表》,但是这仅仅限于个位数,应该还要特判一下
5天前 来自 浙江
1哦哦哦学到了
5天前 来自 广东
0
实际上,注意到题目为,所以此题并不可直接套用《九九乘法表》,而是使用大学的重要知识点:加法来解决,但是作为蒟蒻能悟出算法也是相当不容易,值得夸赞!!!
事实上,打表可以发现,当时,答案为!11小时前 来自 上海
1萌新求问,!是 的阶乘吗
11小时前 来自 广东
0
笑点解析:讨论区存在多位dalao神人,以为自己击败了trq,给出了很神奇的做法(
5天前 来自 浙江
1宾菲神奇
5天前 来自 江西
0击败了天然气是吧
11小时前 来自 天津
0
去掉快读,改成万能头,代码如下
5天前 来自 上海
1代码?
5天前 来自 广东
0
rjtrq
5天前 来自 浙江
1人机童瑞琪
5天前 来自 浙江
1饿啊
5天前 来自 天津
1
可是 OI 是什么东西?感觉好高级,我都没学过
6天前 来自 广东
1还有对拍是什么玩意?感觉你好强啊,我都不知道
6天前 来自 广东
1膜拜
6天前 来自 广东
1
d
6天前 来自 广东
1(
8分钟前 来自 重庆
0你思路错了。我们都知道,。因此,我们需要对 和 进行乘法计算,然后再用 do-while 循环遍历,最后输出 。
10小时前 来自 上海
0乘法是什么
10小时前 来自 广东
0我浅浅实现了一下这个功能,你可以看看:https://www.acgo.cn/discuss/study/59368
10小时前 来自 上海
0
思路基本正确,但是一一得一是指乘法,这里是“A+B”,所以应该为:
if(n == 1) cout << m+1; else if(m == 1) cout << n+1;
还有其实可以用万能头,要不然太麻烦。
5天前 来自 天津
0#include<bits/stdc++.h> using namespace std; int main(){ long long n, m; cin >> n >> m; if(n == 0) cout << m; else if(m == 0) cout << n; else cout << n + m; return 0; }
5天前 来自 上海
0为什么啊?还有0是什么?
5天前 来自 广东
0四川特产(bushi
12小时前 来自 上海
1%%%
12小时前 来自 广东
0
#include <iostream> using namespace std; int main(){ int n , m; cin >> n >> m; if(n == 1) cout << m + 1; else if(m == 1) cout << n; else cout << n + m; return 0; }
别问我why?问就是试出来的
5天前 来自 福建
0原来加法不满足交换律吗,学到了
5天前 来自 广东
0我知道了,你这个应该是数据比较水导致m + 1就可以了,严谨一些就是下面这串代码
#include <iostream> using namespace std; int main(){ int n , m; cin >> n >> m; if(n == 1) cout << m + 1; else if(m == 1) cout << n + 1; else cout << n + m; return 0; }
5天前 来自 福建
0如果你是想要直接输出m和n你应该判断m0和n0才能直接输出m或n
#include <iostream> using namespace std; int main(){ int n , m; cin >> n >> m; if(n == 0) cout << m; else if(m == 0) cout << n; else cout << n + m; return 0; }
5天前 来自 福建
0
你的思路没有问题,但是题目里的变量是 a 和 b,应该用 a 和 b 而不是 n 和 m
(我也是萌新,刚做出这道题,不知道说得对不对)6天前 来自 广东
0原来是这样吗
5天前 来自 广东
0应该是吧,我也不太清楚,刚做出这道题
5天前 来自 广东
0
666
6天前 来自 浙江
0
应该为if(n == 1) cout << m+1; else if(m == 1) cout << n+1;
6天前 来自 浙江
0为什么啊
6天前 来自 广东
0……
6天前 来自 浙江
0
注意到 的和可能爆int ,应用long long存储数据
6天前 来自 江西
0用了
long long
还是不对啊,还 CE 了,什么破评测机#include <iostream> #include <cstdio> using namespace std; long long main(){ ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); long long n, m; cin >> n >> m; if(n == 1) cout << m; else if(m == 1) cout << n; else cout << n + m; return 0; }
6天前 来自 广东
0古怪的
6天前 来自 江西
0恭喜你!你可能发现了经过 56922 轮评测后的 A+B 评测的漏洞,快去发表论文于《Nature》上吧,你这种发现可定能至少图灵奖(((((((
6天前 来自 浙江
1
萌新啊,你这样写不对
6天前 来自 上海
0并非萌新
6天前 来自 江苏
0
有帮助,赞一个