大整数加法

来源:互联网 发布:二维数组push方法 编辑:程序博客网 时间:2024/06/04 20:07

参照算法笔记P172


#include<stdio.h>#include<string.h>struct bign{int d[1000];int len;};void init(bign &a){a.len=0;int i;for(i=0;i<1000;i++){a.d[i]=0;}}bign change(char *s){bign a;init(a);a.len=strlen(s);for(int i=0;i<a.len;i++){a.d[i]=s[a.len-i-1]-'0';}return a;} bign add(bign a,bign b){bign c;init(c);int i,carry=0;for(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;}void print(bign a){int i;for(i=a.len-1;i>=0;i--){printf("%d",a.d[i]);}}int main(){char s1[1000],s2[1000];scanf("%s %s",s1,s2);bign a=change(s1);bign b=change(s2);bign c=add(a,b);print(c);}


乙级1074

原创粉丝点击