|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
高精度加法
- #include<iostream>
- #include<string>
- #include<cmath>
- #include<cstdio>
- #include<cstring>
- #include<cstdlib>
- #include<iomanip>
- using namespace std;
- int main(){
- //iomanip的语法(保留x位小数):cout<<fixed<<<setprecision(正整数)<<数;
- char a1[1000],b1[1000];
- int a[1000],b[1000],c[3000]={},lena,lenb,lenc,i,x,sum;
- memset(a,0,sizeof(a));
- memset(b,0,sizeof(b));
- memset(c,0,sizeof(c));
- gets(a1);
- gets(b1);
- lena=strlen(a1);
- lenb=strlen(b1);
- for(i=0;i<=lena-1;i++){
- a[lena-i]=a1[i]-48;
- }
- for(i=0;i<=lenb-1;i++){
- b[lenb-i]=b1[i]-48;
- }
- lenc=1;
- x=0;
- while(lenc<=lena||lenc<=lenb){
- sum=a[lenc]+b[lenc]+x;
- c[lenc]+=sum;
- x=c[lenc]/10;
- c[lenc]%=10;
- lenc++;
- }
- c[lenc]=x;
- if(c[lenc]==0){
- lenc--;
- }
- for(i=lenc;i>=1;i--){
- cout<<c[i];
- }
- cout<<endl;
- return 0;
- }
复制代码
高精度减法
- #include<iostream>
- #include<string>
- #include<cmath>
- #include<cstdio>
- #include<cstring>
- #include<cstdlib>
- #include<iomanip>
- using namespace std;
- int main(){
- //iomanip的语法(保留x位小数):cout<<fixed<<<setprecision(正整数)<<数;
- char n[1000],n1[1000],n2[1000];
- int a[1000],b[1000],c[1000]={},lena,lenb,lenc,i;
- memset(a,0,sizeof(a));
- memset(b,0,sizeof(b));
- memset(c,0,sizeof(c));
- gets(n1);
- gets(n2);
- if(strlen(n1)<strlen(n2)||(strlen(n1)<strlen(n2)&&strcmp(n1,n2)<0)){
- strcpy(n,n1);
- strcpy(n2,n);
- cout<<"-";
- }
- lena=strlen(n1);
- lenb=strlen(n2);
- for(i=0;i<=lena-1;i++){
- a[lena-i]=int(n1[i]-'0');
- }
- for(i=0;i<=lenb-1;i++){
- b[lenb-i]=int(n2[i]-'0');
- }
- i=1;
- while(i<=lena||i<=lenb){
- if(a[i]<b[i]){
- a[i]+=10;
- a[i+1]--;
- }
- c[i]=a[i]-b[i];
- i++;
- }
- lenc=i;
- while(c[lenc]==0&&lenc>1){
- lenc--;
- }
- for(i=lenc;i>=1;i--){
- cout<<c[i];
- }
- cout<<endl;
- return 0;
- }
复制代码
这是代码,我怕太耗内存,就直接写上去了。。。
|
|