算法笔记之:大整数的四则运算

带来《算法笔记》第五章:

大整数的四则运算

#include
#include


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;ib.len) return 1;
    else if(a.len=0;i--){
            
            if(a.d[i]>b.d[i]) return 1;
            else if(a.d[i]
bign add(bign a,bign b){
    bign c;
    
    for(int i=0;i=1&&c.d[c.len-1]==0){
        c.len--;
        
    }//如果最高位结果为0,则省略
    return c;
    
}
bign multi(bign a,bign b){
for(int i=0;i

 

bign divide(bign a,bign b){
    bign c;
    c.len=a.len;
   for(int i=a.len-1;i>=0;i--){
       r=r*10+a.d[i];
      if (r=1){
        c.len--;
        
    }
}
int main(){
 char str1[1000],str2[1000];
 scanf("%s%s",&str1,&str2);
 bign a=change(str1);
 bign b=change(str2);
 printf(add(a,b));
 return 0;
    
}

你可能感兴趣的:(刷子刷题,C)