174 条题解
-
0
这道题非常的简单,但是我们可以使用不同的方法做,在完成题目的同时,也可以发散我们的思维。
首先第一步:打头文件
你既可以选择万能头文件
#include<bits/stdc++.h>
也可以选择一般头文件
#include<iostream>
第二步:补充
using namespace std;
第三步:写主函数
int main() { return 0; }
第四步:定义变量
int a,b;
.第五步:思考算法
从这一步开始,你就要开始思考解决这道问题有哪些不同的算法,并开始付诸实践,请看下文。
法一:直接输入,直接输出
#include<iostream> using namespace std; int main() { int a,s; cin>>a>>s; cout<<a+s; return 0; }
法二:利用循环解决
#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=100010; int a,b,n=1,c[maxn]; signed main(){ cin>>a>>b; for(int i=1;i<=n;i++){ c[i]+=a+b; } cout<<c[1]; }
法三:利用栈解决 思路很明确,将和入栈,在计算的时候,弹出栈顶,计算。
#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=100010; stack<int> s; int a,b,n; signed main(){ cin>>a>>b; s.push(a); s.push(b); while(!s.empty()){ n+=s.top(); s.pop(); } cout<<n; }
法四:利用队列解决 思路很简单,利用队列,输入的时候把入队,在使用的时候,弹出队头再计算。
#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=100010; queue<int> s; int a,b,n; signed main(){ cin>>a>>b; s.push(a); s.push(b); while(!s.empty()){ n+=s.front(); s.pop(); } cout<<n; }
法五:利用双端队列解决 思路很清晰,将和一个加入队头,一个加入队尾,使用的时候,将两端分别弹出即可。
#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=100010; deque<int> s; int a,b,n; signed main(){ cin>>a>>b; s.push_front(a); s.push_back(b); cout<<s.front()+s.back(); }
运用不同的方法,解决同一道题目,不仅是收获了快乐,更重要的是发散了思维,熟练了算法。
信息
- ID
- 56
- 时间
- 1000ms
- 内存
- 1024MiB
- 难度
- 1
- 标签
- 递交数
- 10204
- 已通过
- 4606
- 上传者