6 条题解

  • 3
    @ 2026-6-5 15:18:16
    using namespace std;
    int main(){
        int a,b;
        cin>>a>>b;
        cout<<a+b;
        
        return 0;
    }
    
    
    • 1
      @ 2026-2-4 20:44:53

      T2 a+b的题解

      对于初学者,我们可以使用心算

      cout<<a+b<<endl;)。

      而这是利用数组模拟现实中的竖式计算完成的加法。 是的没错就是你小学学的那个 在这篇代码里我使用了voidvoid函数,所以逐个函数进行解析:

      一,void clear(int a[]): 就像它的名字一样, clearclear 函数的作用是清空数组a[i]a[i]

      二,void read(int a[]): charchar 定义一个字符串 ss ,通过字符串类型数值对字符'0'做减法来把读入的字符串转化成数字,存到 a[i]a[i] 数组里去。

      三,void print(int a[]): 相信对C语言以及C与C++相通的部分有所了解的同学们一定对 printf() 这个函数不陌生吧,这里 printprint 就是对答案先加上一个字符 '0' ,再用 putchar() 从标准输出输出一个字符串答案。

      四,add(int a[], int b[], int c[]) 高精度加法的核心,将字符串 aa , bb 通过模拟竖式计算做加法,把答案存在数组 cc 里面。

      
      #include<bits/stdc++.h>
      using namespace std;
      
      
      const int len = 1000004;
      
      int a[len], b[len], c[len];
      
      void clear(int a[]) {
      	for (int i = 0; i < len; ++i) a[i] = 0;
      }
      
      void read(int a[]) {
      	static char s[len + 1];
      	scanf("%s", s);
      
      	clear(a);
      
      	int len = strlen(s);
      	for (int i = 0; i < len; ++i) a[len - i - 1] = s[i] - '0';
      }
      
      void print(int a[]) {
      	int i;
      	for (i = len - 1; i >= 1; --i)
      		if (a[i] != 0) break;
      	for (; i >= 0; --i) putchar(a[i] + '0');
      	putchar('\n');
      }
      
      void add(int a[], int b[], int c[]) {
      	clear(c);
      	for (int i = 0; i < len - 1; ++i) {
      		c[i] += a[i] + b[i];
      		if (c[i] >= 10) {
      			c[i + 1] += 1;
      			c[i] -= 10;
      		}
      	}
      }
      
      int main() {
      	read(a);
      	read(b);
      
      	add(a, b, c);
      	print(c);
      
      
      	return 0;
      }
      //by hina
      //BlueArchive!
      

      高精度好玩捏

      • -2
        @ 2026-7-10 16:54:51
        #include<iostream>
        signed main(){
            int a,b;std::cin>>a>>b;
            std::cout<<a+b;
        }
        
        • -2
          @ 2026-7-10 16:54:37
          #include<iostream>
          signed main(){
              int a,b;std::cin>>a>>b;
              std::cout<<a+b;
          }
          
          • -2
            @ 2026-2-13 10:21:55

            #include<bits/stdc++.h> using namespace std;

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

          • -4
            @ 2026-7-24 16:28:48

            解析:大小超过short!时间复杂度超过O(0)!输入输出格式无法理解!这道题十分难,应该是道黑题,所以看到数学的标签,我就知道这题可以用二进制,上代码:

            #include <iostream>
            #include <cstdio>
            #include <cstring>
            #include <string>
            #include <algorithm>
            #include <vector>
            #include <queue>
            #include <stack>
            #include <set>
            #include <map>
            #include <unordered_set>
            #include <unordered_map>
            #include <cmath>
            #include <cstdlib>
            #include <ctime>
            #include <climits>
            #include <cctype>
            #include <cassert>
            #include <numeric>
            #include <functional>
            #include <bitset>
            #include <deque>
            #include <list>
            #include <tuple>
            #include <utility>
            #include <iterator>
            #include <sstream>
            #include <fstream>
            #include <iomanip>
            #include <limits>
            #include <chrono>
            #include <random>
            #include <cstdint>
            #include <cstddef>
            #include <cfloat>
            #include <cwchar>
            #include <array>
            #include <memory>
            using namespace std;
            long long bi(long long x,long long y){
                long long res;
                long long temp;
                long long carry;
                while(true){
                    res=x^y;
                    temp=x&y;
                    carry=temp<<1;
                    if(carry==0){
                        break;
                    }
                    x=res;
                    y=carry;
                }
                return res;
            }
            int main(){
                long long a;
                long long b;
                cin>>a;
                cin>>b;
                cout<<bi(a,b)<<endl;
                return 0;
            }
            
            
          • 1

          信息

          ID
          2
          时间
          1000ms
          内存
          256MiB
          难度
          1
          标签
          递交数
          653
          已通过
          286
          上传者