首页 > 代码库 > 高精度加剪乘
高精度加剪乘
#include<stdio.h> #include <cstring> char n[255],m[255]; int n1[255],m1[255],s[510]; int bigjia(char *a,char *b) { int a1[500],b1[500]; int i,j,k=0,t; int lena=strlen(a); int lenb=strlen(b); for(i=0; i<lena; i++) a1[i]=a[i]-48; for(j=0; j<lenb; j++) b1[j]=b[j]-48; while(i>=0&&j>=0) { s[k]=a1[i]+b1[j]; k++; i--; j--; } if(i>=0) while(i>=0) { s[k]=a1[i]; k++; i--; } else if(j>=0) while(j>=0) { s[k]=b1[j]; k++; j--; } for(t=1; t<k; t++) if(s[t]>=10) { s[t]%=10; s[t+1]++; } while(s[k]==0) k--; return k; } int bigcheng(char *n,char *m) { int k=0,t,x=0,dig; int lenn=strlen(n); int lenm=strlen(m); for(int i=0; i<lenn; i++) n1[i]=n[i]-48; for(int j=0; j<lenm; j++) m1[j]=m[j]-48; for(int j=lenm-1; j>=0; j--) { t=k; for(int i=lenn-1; i>=0; i--) { s[t]+=n1[i]*m1[j]; t++; } ++k; dig=t; } for(int i=0; i<dig; i++) while(s[i]>=10) { s[i]-=10; ++s[i+1]; } return dig; } void exch_str(char*s1,char*s2) { char tmp[1001]; strcpy(tmp,s1); strcpy(s1,s2); strcpy(s2,tmp); } void bigjian(char *a,char *b) { int a1[1001]= {0},b1[1001]= {0},s[1001]= {0},sign=1; int len_a,len_b,i,j,k=0,t; len_a=strlen(a); len_b=strlen(b); if(len_a<len_b) { sign=-1; exch_str(a,b); t=len_a; len_a=len_b; len_b=t; } else if(len_a==len_b) { for(i=0; i<len_a; ++i) { if(a[i]>b[i]) { sign=1; break; } else if(a[i]<b[i]) { sign=-1; exch_str(a,b); break; } } } else { sign=1; } for(i=0; i<len_a; ++i) { a1[i]=a[i]-'0'; } for(j=0; j<len_b; ++j) { b1[j]=b[j]-'0'; } while(i>=0&&j>=0) { s[k]=a1[i]-b1[j]; if(s[k]<0) { a1[i-1]-=1; s[k]+=10; } k++; i--; j--; } while(i>=0) { s[k]=a1[i]; k++; i--; } if(sign<0) printf("-"); while(s[k]==0&&k>0) { k--; } if(k==0) printf("0"); while(k>0) { printf("%d",s[k]); k--; } } int main() { scanf("%s%s",&n,&m); int l=bigjia(n,m); for(int i=l; i>0; i--) printf("%d",s[i]); puts(""); memset(s,0,sizeof(s)); int ll=bigcheng(n,m); if(s[ll]!=0) for(int i=ll; i>=0; i--) printf("%d",s[i]); else for(int i=ll-1; i>=0; i--) printf("%d",s[i]); puts(""); memset(s,0,sizeof(s)); bigjian(n,m); return 0; }
高精度加剪乘
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。