Mark_Miao不定时带你做题2(P1001)(高精度)(雾)
Hello 各位hxd们好
时隔多年我又更新了(废话)
没想到吧我还活着(也是废话)(难道我si了不成)[doge]
今天我们来 作死 (划去) 做题
P1001 A+B
可是我要van点不一样的~
就比如说整个高精度啥的(雾)
挑战全站最长A+B
代码自提~
// C
#ifndef _GLIBCXX_NO_ASSERT
#include <cassert>
#endif
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#if __cplusplus >= 201103L
#include <ccomplex>
#include <cfenv>
#include <cinttypes>
#include <cstdalign>
#include <cstdbool>
#include <cstdint>
#include <ctgmath>
#include <cwchar>
#include <cwctype>
#endif
// C++
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
#if __cplusplus >= 201103L
#include <array>
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <forward_list>
#include <future>
#include <initializer_list>
#include <mutex>
#include <random>
#include <ratio>
#include <regex>
#include <scoped_allocator>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#endif
using namespace std;
int main()
{
char str1[1100];
char str2[1100];
int a[1100];
int b[1100];
int c[1100];
int i,j,k,l,p=0,w=0,q=0,z=0;
scanf("%s",str1);
scanf("%s",str2);
k=strlen(str1);
l=strlen(str2);
for(i=k-1;i>=0;i--)
{
a[w]=str1[i]-'0';
w++;
}
for(i=l-1;i>=0;i--)
{
b[q]=str2[i]-'0';
q++;
}
if(w==q)
{
for(i=0;i<w;i++)
{
if(a[i]+b[i]+p<10)
{
c[i]=a[i]+b[i]+p;
p=0;
}
else
{
c[i]=a[i]+b[i]+p-10;
p=1;
}
}
if(p==1)
{
c[w]=1;
for(i=w;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
else
{
for(i=w-1;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
}
if(w>q)
{
for(i=q;i<w;i++)
{
b[i]=0;
}
for(i=0;i<w;i++)
{
if(a[i]+b[i]+p<10)
{
c[i]=a[i]+b[i]+p;
p=0;
}
else
{
c[i]=a[i]+b[i]+p-10;
p=1;
}
}
if(p==1)
{
c[w]=1;
for(i=w;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
else
{
for(i=w-1;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
}
if(q>w)
{
for(i=w;i<q;i++)
a[i]=0;
for(i=0;i<q;i++)
{
if(a[i]+b[i]+p<10)
{
c[i]=a[i]+b[i]+p;
p=0;
}
else
{
c[i]=a[i]+b[i]+p-10;
p=1;
}
}
if(p==1)
{
c[q]=1;
for(i=q;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
else
{
for(i=q-1;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
}
return 0;
}