史上最“简单”方法
2026-05-08 17:50:53
发布于:浙江
5阅读
0回复
0点赞
这道题十分深奥,因为作者可能会坑我们。所以,我们要用高精度。代码如下:
#include<iostream>
#include<fstream>
#include<sstream>
#include<iomanip>
#include<vector>
#include<deque>
#include<list>
#include<set>
#include<map>
#include<unordered_set>
#include<unordered_map>
#include<stack>
#include<queue>
#include<algorithm>
#include<numeric>
#include<functional>
#include<iterator>
#include<memory>
#include<new>
#include<utility>
#include<tuple>
#include<array>
#include<bitset>
#include<regex>
#include<chrono>
#include<thread>
#include<mutex>
#include<condition_variable>
#include<future>
#include<atomic>
#include<random>
#include<complex>
#include<cmath>
#include<ctime>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<cctype>
#include<cassert>
#include<cerrno>
#include<cfenv>
#include<cfloat>
#include<cinttypes>
#include<climits>
#include<clocale>
#include<csetjmp>
#include<csignal>
#include<cstdarg>
#include<cstddef>
#include<cstdint>
#include<cwchar>
#include<cwctype>
#include<exception>
#include<stdexcept>
#include<system_error>
#include<typeinfo>
#include<typeindex>
#include<type_traits>
#include<initializer_list>
#include<valarray>
#include<locale>
#include<codecvt>
#include<string_view>
#include<optional>
#include<any>
#include<variant>
#include<filesystem>
#include<bits/stdc++.h>
#define N 210
using namespace std;
int j(int x){
int r=0;;
while(1){
if(x%2==1)r++;
x=x/2;
if(x==0)break;
}
return r;
}
int as[N],bs[N],lena,lenb;
string a,b;
int main(){
cin>>a>>b;
lena=a.size();
lenb=b.size();
for(int i=0;i<lena;i++)as[i]=a[lena-i-1]-'0';
for(int i=0;i<lenb;i++)bs[i]=b[lenb-i-1]-'0';
int length=max(lena,lenb);
for(int i=0;i<length;i++)as[i]+=bs[i];
for(int i=0;i<length;i++){
if(as[i]>9){
as[i+1]++;
as[i]-=10;
if(i==length-1)length++;
}
}
while(length&&as[length]==0)length--;
for(int i=length;i>=0;i--)cout<<as[i];
cout<<endl;
return 0;
}
//看完点个赞
不多才102行
这里空空如也








有帮助,赞一个