废话不多说 我只想送你们代码!
#include<bits/stdc++.h>
#include <iostream>
using namespace std;
const int N=1e3+10;
int k;
string s,t;
int a[N],b[N],c[N];
bool cmp(string s1, string s2) {
if(s1.size()<s2.size()) return true;
else if(s1.size()==s2.size()){
if(s1<s2) return true;
else return false;
}else return false;
}
int main()
{
ios::sync_with_stdio(false);
cout<<"高精度计数器请输入运算符:+ - * /"<<endl;
char g;
cin>>g;
if(g=='+')
{
cout<<"加法"<<" 请输入加数:";
string s1, s2;
cin >> s1 >> s2;
int lena = s1.size(), lenb = s2.size();
for(int i = 0; i < lena; i++) {
a[i] = s1[lena-i-1] - '0';
}
for(int i = 0; i < lenb; i++) {
b[i] = s2[lenb-i-1] - '0';
}
int lenc = max(lena, lenb);
for(int i = 0; i < lenc; i++) {
c[i] += a[i] + b[i];
if(c[i] >= 10) {
c[i+1] = c[i] / 10;
c[i] %= 10;
}
}
if(c[lenc] > 0) lenc++;
for(int i = lenc - 1; i >= 0; i--) {
cout << c[i];
}
}
else if(g=='-')
{
cout<<"减法"<<" 请输入被减数和减数:";
string s1,s2;
cin>>s1>>s2;
if(cmp(s1,s2)) {
swap(s1, s2);
cout<<"-";
}
int lena= s1.size(),lenb=s2.size();
for(int i=0;i<lena;i++) {
a[i]=s1[lena-i-1]-'0';
}
for(int i = 0; i < lenb; i++) {
b[i] = s2[lenb-i-1] - '0';
}
int lenc = lena;
for(int i=0;i<lenc;i++) {
if(a[i]<b[i])
{
a[i+1]--;
a[i]+=10;
}
c[i]=a[i]-b[i];
}
while(lenc>=1&&c[lenc-1]==0) lenc--;
for(int i=lenc-1;i>=0;i--) {
cout<<c[i];
}
}
else if(g=='*')
{
cout<<"乘法"<<" 请输入加数:";
cin>>s>>t;
int len1=s.size();
int len2=t.size();
for(int i=0;i<len1;i++)
a[i]=s[len1-i-1]-'0';
for(int i=0;i<len2;i++)
b[i]=t[len2-i-1]-'0';
int len3=len1+len2;
for(int i = 0; i < len1; i++) {
for(int j = 0; j < len2; j++) {
c[i+j] += a[i] * b[j];
if(c[i+j] >= 10) {
c[i+j+1] += c[i+j] / 10;
c[i+j] %= 10;
}
}
}
while(len3>1&&c[len3-1]==0)
len3--;
for(int i=len3-1;i>=0;i--)
{
cout<<c[i];
}
}
else if(g=='/')
{
cout<<"除法"<<" 请输入加被除数和除数:";
cin>>s;
cin>>k;
if(k!=0)
{
int len1=s.size();
for(int i=0;i<len1;i++)
a[i]=s[i]-'0';
long long r=0;
for(int i=0;i<len1;i++)
{
r=r*10+a[i];
if(r>=k)
{
c[i]=r/k;
r%=k;
}
}
int ans=0;
while(c[ans]==0&&ans<len1-1)
ans++;
for(int i=ans;i<len1;i++)
cout<<c[i];
cout<<endl<<r;
}
else
{
cout<<"Error! 请输入非0除数!"<<endl;
}
}
return 0;
}