-
分享
计算机(高精度版,依旧手搓)
-
陈赫临
LV 8
@
2026-7-24 13:10:34
#include <bits/stdc++.h>
using namespace std;
string t,s1,s2;
long long a[5000000],c[3000005],b1,b[10000000],m,aa,bb,cc;
char jjjjj,iiiii,go;
int jia(){
cin>>s1>>s2;
cout<<"和:";
aa=s1.size();
bb=s2.size();
for(int i=0;i<aa;i++){
a[i]=s1[aa-i-1]-'0';
}
for(int i=0;i<bb;i++){
b[i]=s2[bb-i-1]-'0';
}
cc=max(aa,bb)+1;
for(int i=0;i<cc;i++){
c[i]=a[i]+b[i];
}
for(int i=0;i<cc;i++){
if(c[i]>=10){
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
}
while(c[cc-1]==0&&cc>1){
cc--;
}
for(int i=cc-1;i>=0;i--)cout<<c[i];
return 0;
}
int jian(){
cin>>s1>>s2;
cout<<"差:";
if(s1.size()<s2.size()||s1.size()==s2.size()&&s1<s2){
swap(s1,s2);
cout<<"-";
}
aa=s1.size();
bb=s2.size();
for(int i=0;i<aa;i++){
a[i]=s1[aa-i-1]-'0';
}
for(int i=0;i<bb;i++){
b[i]=s2[bb-i-1]-'0';
}
cc=max(aa,bb);
for(int i=0;i<cc;i++){
c[i]=a[i]-b[i];
}
for(int i=0;i<cc;i++){
if(c[i]<b[i]){
a[i]+=10;
a[i+1]--;
}
c[i]=a[i]-b[i];
}
while(c[cc-1]==0&&cc>1){
cc--;
}
for(int i=cc-1;i>=0;i--)cout<<c[i];
return 0;
}
int chu(){
cin>>t>>b1;
while(b1==0){
cout<<"0不可以做除数!,请再输入一遍";
cin>>t>>b1;
}
cout<<"商:";
for(int i=0;i<t.size();i++){
a[i]=t[i]-'0';
}
for(int i=0;i<t.size();i++){
c[i]=(m*10+a[i])/b1;
m=(m*10+a[i])%b1;
}
int j=0;
while(c[j]==0&&j<t.size()-1){
j++;
}
for(int i=j;i<t.size();i++)cout<<c[i];
cout<<endl<<"余数:"<<m;//余数
return 0;
}
int cheng(){
cin>>s1>>s2;
cout<<"积:";
aa=s1.size();
bb=s2.size();
for(int i=0;i<aa;i++){
a[i]=s1[aa-i-1]-'0';
}
for(int i=0;i<bb;i++){
b[i]=s2[bb-i-1]-'0';
}
cc=aa+bb;
for(int i=0;i<aa;i++){
for(int j=0;j<bb;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(c[cc-1]==0&&cc>1){
cc--;
}
for(int i=cc-1;i>=0;i--)cout<<c[i];
return 0;
}
int main(){
cin>>go;
if(go=='/'){
chu();
return 0;
}
if(go=='*'){
cheng();
return 0;
}
if(go=='-'){
jian();
return 0;
}
if(go=='+'){
jia();
return 0;
}
cin>>jjjjj>>iiiii;
while(go!='/'||go!='*'||go!='-'||go!='+'){
if(go=='/'){
chu();
return 0;
}
if(go=='*'){
cheng();
return 0;
}
if(go=='-'){
jian();
return 0;
}
if(go=='+'){
jia();
return 0;
}
cout<<"符号错误,再输入一遍!";
cin>>go;
}
return 0;
}