运算主要分为:加,减,乘,除,乘方
+, - ,× ,÷ ,^
下面来详细讲解一下每个运算的定义和方法
加(+):定义:一个数和另一个数的和。
运算方法:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a+b;
return 0;
}
但有时候数字会很大,我们怎么办呢?
第一种方法:卡常,有时候能直接蒙混过关(建议别用)
第二种方法:高精度
具体做法:输入的是字符串,因为long long 放不下
然后将每一位数存入数组的一个格子里
a,b数组是初始的两个数,c数组是最终的结果
注意:有可能有进位
#include<bits/stdc++.h>
using namespace std;
const int maxn=100;
int a[105],b[105],c[105];
int len_a,len_b,len_c;
string s;
int main(){
cin>>s;
len_a=s.length();
for(int i=0;i<len_a;i++)
a[len_a-i]=s[i]-48;
cin>>s;
len_b=s.length();
for(int i=0;i<len_b;i++)
b[len_b-i]=s[i]-48;
int i,x=0;
for(i=1;i<=len_a||i<=len_b;i++) {
c[i]=a[i]+b[i]+x;
x=c[i]/10;
c[i]%=10;
}
c[i]=x;
len_c=i;
while(c[len_c]==0&&len_c>1)
len_c--;
for(int i=len_c;i>=1;i--)
cout<<c[i];
return 0;
}
----
减(-):定义:一个数和另一个数的差。
运算方法:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a-b;
return 0;
)
但有时候数字会很大,我们怎么办呢?
第一种方法:卡常,有时候能直接蒙混过关(建议别用)
第二种方法:高精度
具体做法:输入的是字符串,因为long long 放不下
然后将每一位数存入数组的一个格子里
a,b数组是初始的两个数,c数组是最终的结果
注意:有可能有退位(比较麻烦……
#include<bits/stdc++.h>
using namespace std;
int main(){
string sd,se,sa;
int a[100001]{0},b[100001]{0},c[100001]{0},mc,me,mz,n,mo=0;
cin>>sd>>se;
mc=sd.size();
me=se.size();
if(mc<me||mc==me&&sd<se){sa=sd;sd=se;se=sa;n=mc;mc=me;me=n;mo=-1;}
for(int i=1;i<=mc;i++) a[i]=sd[mc-i]-'0';
for(int i=1;i<=me;i++) b[i]=se[me-i]-'0';
int i=1,o=0;
while(i<=mc||i<=me)
{
if(a[i]<b[i]){a[i+1]--;a[i]+=10;}
c[i]=a[i]-b[i];
i++;
}
mz=i;while(c[mz]==0&&mz>1)mz--;
if(mo==-1) cout<<"-";
for(int i=mz;i>=1;i--) cout<<c[i];
return 0;
}