萌新刚学 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;
}
全部评论 21
事实上你的变量名不对,题目中明确提到是A+B,而不是n+m,这属于你的读题不仔细,变量名出错将会严重影响程序输出!
1周前 来自 浙江
5但是容易发现,即使改了变量名依旧不能过,这需要让我们重新思考问题。
1周前 来自 浙江
2你给出的“一一得一一二得二...”源自《唐氏三百首》中的《九九乘法表》,但是这仅仅限于个位数,应该还要特判一下
1周前 来自 浙江
2哦哦哦学到了
1周前 来自 广东
0
实际上,注意到题目为,所以此题并不可直接套用《九九乘法表》,而是使用大学的重要知识点:加法来解决,但是作为蒟蒻能悟出算法也是相当不容易,值得夸赞!!!
事实上,打表可以发现,当时,答案为!2天前 来自 上海
2萌新求问,!是 的阶乘吗
2天前 来自 广东
0什么!你居然知道阶乘!那可是国际大佬才会的技能啊,不过我可以斗胆分析一波!
注意到是中文感叹号,所以不是阶乘昨天 来自 上海
0是n加上1的阶乘
昨天 来自 上海
0
笑点解析:讨论区存在多位dalao神人,以为自己击败了trq,给出了很神奇的做法(
1周前 来自 浙江
2宾菲神奇
1周前 来自 江西
0击败了天然气是吧
2天前 来自 天津
0天然气(
昨天 来自 上海
0
去掉快读,改成万能头,代码如下
1周前 来自 上海
1代码?
1周前 来自 广东
0ou这样写
如下
10小时前 来自 江苏
0自己往下翻,我的代码在下面,你不会以为我只是发个“代码如下”?
10小时前 来自 上海
0
rjtrq
1周前 来自 浙江
1人机童瑞琪
1周前 来自 浙江
1饿啊
1周前 来自 天津
1童瑞琪是啥玩意
昨天 来自 上海
1
可是 OI 是什么东西?感觉好高级,我都没学过
1周前 来自 广东
1还有对拍是什么玩意?感觉你好强啊,我都不知道
1周前 来自 广东
1膜拜
1周前 来自 广东
1
萌新啊,你这样写不对
1周前 来自 上海
1并非萌新
1周前 来自 江苏
0woc,是大佬!可以教教我吗,求求了!大家快来听课!
@滚蛋吧c++ @kkksc03 @复仇者_帅童 @不会C++的noah @AAA混凝土批发ppl哥 非学术,我们可以学新东西了!昨天 来自 上海
0haoa
昨天 来自 上海
1
d
1周前 来自 广东
1d
7小时前 来自 北京
0对拍是什么
昨天 来自 江苏
0不不不,全错了,我放在PY里全编译错,为什么啊(好难猜啊
昨天 来自 上海
0我去笑死
昨天 来自 上海
0受着
昨天 来自 浙江
0(
昨天 来自 重庆
0你思路错了。我们都知道,。因此,我们需要对 和 进行乘法计算,然后再用 do-while 循环遍历,最后输出 。
2天前 来自 上海
0乘法是什么
2天前 来自 广东
0我浅浅实现了一下这个功能,你可以看看:https://www.acgo.cn/discuss/study/59368
2天前 来自 上海
0乘法是计算两数之和的运算
昨天 来自 上海
0
思路基本正确,但是一一得一是指乘法,这里是“A+B”,所以应该为:
if(n == 1) cout << m+1; else if(m == 1) cout << n+1;
还有其实可以用万能头,要不然太麻烦。
1周前 来自 天津
0不,应为
cout<<A+B;
昨天 来自 广东
013小时前 来自 天津
0是A+B,没错
13小时前 来自 广东
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; }
1周前 来自 上海
0为什么啊?还有0是什么?
1周前 来自 广东
0四川特产(bushi
2天前 来自 上海
1%%%
2天前 来自 广东
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?问就是试出来的
1周前 来自 福建
0原来加法不满足交换律吗,学到了
1周前 来自 广东
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; }
1周前 来自 福建
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; }
1周前 来自 福建
0
你的思路没有问题,但是题目里的变量是 a 和 b,应该用 a 和 b 而不是 n 和 m
(我也是萌新,刚做出这道题,不知道说得对不对)1周前 来自 广东
0原来是这样吗
1周前 来自 广东
0应该是吧,我也不太清楚,刚做出这道题
1周前 来自 广东
0
666
1周前 来自 浙江
0
应该为if(n == 1) cout << m+1; else if(m == 1) cout << n+1;
1周前 来自 浙江
0为什么啊
1周前 来自 广东
0……
1周前 来自 浙江
0
有帮助,赞一个