14 条题解

  • 3
    @ 2025-5-3 19:55:03

    这里采用多种方法求解。

    方法一:读入·运算·输出

    #include <bits/stdc++.h>
    using namespace std;
    int a,b;
    int main(){
        cin>>a>>b;
        cout<<a+b;
        return 0;
    }
    

    方法二:“数手指”方法

    #include <bits/stdc++.h>
    using namespace std;
    int a,b,ans=0;
    int main() {
    	cin>>a>>b;
    	for (int i=1;i<=a;i++)
    		ans++;
    	for(int i= 1;i<=b;i++)
    		ans++;
    	cout<<ans;
    	return 0;
    }
    

    方法三:从算法数据结构的角度思考 设计一个算法:先将a和b插入到一个数据结构(栈、队列或堆)中,非空时,将头上的元素取出,如果大于1则拆成它减1和1(根据自己的喜好)再插入,否则统计答案。

    栈写法

    #include <bits/stdc++.h>
    using namespace std;
    int a,b,ans=0;
    stack<int> s;
    int main(){
    	cin>>a>>b;
    	s.push(a);
    	s.push(b);
    	while(!s.empty()){
    		int x=s.top();
    		s.pop();
    		if(x>1){
    			s.push(x-1);
    			s.push(1);
    		}
    		else
    			ans+=x; 
    	}
    	cout<<ans;
    	return 0;
    }
    

    队列写法

    #include <bits/stdc++.h>
    using namespace std;
    int a,b,ans=0;
    queue<int> q;
    int main(){
    	cin>>a>>b;
    	q.push(a);
    	q.push(b);
    	while(!q.empty()){
    		int x=q.front();
    		q.pop();
    		if(x>1){
    			q.push(x-1);
    			q.push(1);
    		}
    		else
    			ans+=x; 
    	}
    	cout<<ans;
    	return 0;
    }
    

    堆写法

    #include <bits/stdc++.h>
    using namespace std;
    int a,b,ans=0;
    priority_queue<int> h;
    int main(){
    	cin>>a>>b;
    	h.push(a);
    	h.push(b);
    	while(!h.empty()){
    		int x=h.top();
    		h.pop();
    		if (x>1) {
    			h.push(x-1);
    			h.push(1);
    		}
    		else
    			ans+=x; 
    	}
    	cout<<ans;
    	return 0;
    }
    

    方法四:使用高精度加法

    #include <bits/stdc++.h>
    using namespace std; 
    char s1[100], s2[100];
    int a[100], b[100], c[100];
    int main() {
        scanf("%s%s",s1+1,s2+1);
        int la=strlen(s1+1),lb = strlen(s2+ 1),lc;
        lc=max(la,lb);
    	for (int i = 1; i <= la; i++)
    		a[i] = s1[la - i + 1] - '0';
    	for (int i = 1; i <= lb; i++)
    		b[i] = s2[lb - i + 1] - '0';
    	memset(c, 0, sizeof(c));
    	for (int i = 1; i <= lc; i++) {
    		c[i] += a[i] + b[i];
    		c[i + 1] = c[i] / 10;
    		c[i] %= 10;
    	}
    	if (c[lc + 1] > 0)
    		lc++;
    	for (int i = lc; i >= 1; i--)
    		printf("%d", c[i]);
    	printf("\n");
    	return 0;
    }
    

    方法五:将方法三和方法四结合

    #include <bits/stdc++.h>
    using namespace std;
    int a,b,c[100],lc=1;
    priority_queue<int> h;
    int main() {
    	scanf("%d%d", &a, &b);
    	h.push(a);
    	h.push(b);
    	memset(c,0,sizeof(c));
    	while (!h.empty()) {
    		int x=h.top();
    		h.pop();
    		if (x>1){
    			h.push(x-1);
    			h.push(1);
    		}
    		else {
    			c[1]+=x;
    			for (int i=1;i<=lc;i++){
    				c[i+1]+=c[i]/10;
    				c[i]%=10;
    			}
    			if(c[lc+1]>0)
    				lc++;
    	}
    	for(int i=lc;i>=1;i--)
    		cout<<c[i];
    	cout<<endl;
    	return 0;
    }
    

    你竟然认真的看完了!!! 恭喜你,把简单 的问题复杂 化了!要是你真的看懂了,就说明你太没事闲的了

    • @ 2025-10-25 19:57:31

      恭喜你,方法四和我在洛谷错的一样

      高精度没考虑负数,于是乎我不得不添加高精度减法

  • 2
    @ 2025-2-16 10:13:50

    简单解法

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int a,b;
        cin>>a>>b;
        cout<<a+b;
        return 0;
    }
    
    • 2
      @ 2025-2-1 12:02:52
      #include <bits/stdc++.h>
      using namespace std;
      int main()
      {
          long long a,b;
          cin >> a >> b;
          cout << a + b;
          return 0;
      }
      
      • 2
        @ 2024-12-26 17:49:12

        前言

        这道题简直经典到不能再经典……

        前置知识

        头文件、<iostream>using namespace ……;,C++主函数。

        正片

        正片-1

        本题要求求出输入的两个数的和,那么肯定要用到变量[1]。那现在先输入这两个变量。

        int a,b;
        cin >> a >> b;
        

        正片-2

        既然要求和,第一个肯定就是想到C++内置的运算符+[2],它用于求两个量的和。

        正片-3

        那么最后就可以直接输出了,代码如下。

        cout << a + b;
        

        其中+运算符参见正片-2

        End

        大家要养成要习惯结束代码哟!

        return 0;
        

        1. 这道题数据不大,用int就行。 ↩︎

        2. +C++内置双目运算符之一,同类的还有-*/%等。 ↩︎

        • 2
          @ 2024-11-3 9:35:38

          做出这道题,那么恭喜你踏上了万里征程的第一步!

          这是一道适合入门级选手练手的题目,本篇题解为大家介绍 cin 和 cout 。

          cin :标准输入流。

          输入:cin>>变量名;
          多个输入:cin>>变量名1>>变量名2……;

          cout :标准输出流。

          输出变量:cout<<变量名;
          输出单个字符:cout<<'字符';
          输出一串字符:cout<<"一串字符";
          输出换行:cout<<endl;

          本题代码及解析

          #include<iostream>//头文件,可调用cin、cout
          using namespace std;//标准命名空间 
          int main(){//主函数 
          	int a,b;//定义变量 
          	cin>>a>>b;//输入a,b 
          	cout<<a+b;//输出a,b之和 
          	return 0;//返回0 
          }
          
          • 1
            @ 2025-11-11 13:38:56
            #include<iostream>
            using namespace std;
            int main(){
                long long a,b;
                cin>>a>>b;
                cout<<a+b;
                return 0;
            }
            • 1
              @ 2025-10-25 20:05:24

              有很多方法,以下介绍最简单的一种。

              十年OI一场空,不开long long见祖宗。

              虽然这句话没错,但在这题错了。

              既然a,b109\huge |a|,|b| \normalsize \le 10^9,那么int当然够用。

              最后,是写代码环节!

              #include<bits/stdc++.h>
              int a,b;
              int main(){
                  std::cin>>a>>b;
                  std::cout<<a+b;
                  exit(0);
              }
              

              大家要养成exit(0)的习惯,别问我为什么,学了递归你自然会知道;

              • 1
                @ 2025-5-23 13:03:33

                #include #include

                using namespace std;

                int main() { int a,b; cin >> a >> b; cout << a+b << endl; return 0; }

                • 1
                  @ 2025-2-1 12:02:34
                  #include <bits/stdc++.h>
                  using namespace std;
                  int main()
                  {
                      long long a,b;
                      cin >> a >> b;
                      cout << a + b;
                      return 0;
                  }
                  
                  • 1
                    @ 2025-1-15 20:14:03
                    #include<iostream>
                    using namespace std;
                    int main(){
                    	int a,b; 
                    	cin>>a>>b;
                    	cout<<a+b;
                    }
                    
                    
                    • 0
                      @ 2025-10-30 13:50:50
                      #include <iostream>
                      using namespace std;
                      int main()
                      {
                      	int a,b;
                      	cin >> a >> b;
                      	cout << a + b;
                      	return 0;
                      }
                      
                      • 0
                        @ 2025-8-21 18:28:56

                        水。 #include <bits/stdc++.h> using namespace std; int main(){ int a,b; cin>>a>>b; cout<<a+b; return 0; }

                        • -3
                          @ 2025-7-14 20:23:06
                          #include<bits/stdc++.h>
                          using namespace std;
                          int a,b;
                          int main(){
                              cin>>a>>b;
                              cout<<a+b;
                              return 0;
                          }
                          
                          • -5
                            @ 2024-11-3 9:33:39

                            水题++。

                            #include<bits/stdc++.h>
                            #define int long long
                            #define INF 0x3f3f3f
                            using namespace std;
                            int x,y;
                            signed main(){
                            	cin>>x>>y;
                            	cout<<x+y;
                                return 0;
                            }
                            

                            点个赞再走吧!

                            • 1

                            信息

                            ID
                            5059
                            时间
                            1000ms
                            内存
                            512MiB
                            难度
                            1
                            标签
                            递交数
                            2222
                            已通过
                            1478
                            上传者