大整数A+B
发布时间:2020-12-14 03:20:28 所属栏目:大数据 来源:网络整理
导读:? ? #include bits/stdc++.h using namespace std; struct bign{ int d[ 1000 ]; int len; bign() { memset(d, 0 , sizeof (d)); len = 0 ; }}; // 大整数存储 bign change( char str[]){ bign a; a.len = strlen(str); for ( int i= 0 ;ia.len;i++ ) { a.d[
? ? #include <bits/stdc++.h> using namespace std; struct bign{ int d[1000]; int len; bign() { memset(d,0,sizeof(d)); len=0; } };//大整数存储 bign change(char str[]) { bign a; a.len=strlen(str); for(int i=0;i<a.len;i++) { a.d[i]=str[a.len-i-1]-‘0‘; } return a; }//读入大整数 int compare(bign a,bign b) { if(a.len>b.len) return 1;//a大 else if(a.len<b.len) return -1;//a小 else { for(int i=a.len-1;i>=0;i--)//从高到低比较 { if(a.d[i]>b.d[i]) return 1; else if(a.d[i]<b.d[i]) return -1; } return 0; } } bign add(bign a,bign b) { bign c; int carry=0;//进位 for(int i=0;i<a.len||i<b.len;i++) { int temp=a.d[i]+b.d[i]+carry; c.d[c.len++]=temp%10; carry=temp/10; } if(carry!=0) { c.d[c.len++]=carry; } return c; } int main() { ios::sync_with_stdio(false); char str1[1000],str2[1000]; cin>>str1>>str2; bign a=change(str1); bign b=change(str2); bign c=add(a,b); for(int i=c.len-1;i>=0;i--) { cout<<c.d[i]; } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |