zoukankan      html  css  js  c++  java
  • 新手讲大数大数系列---加法

    1.反转

    2.求和

    3.反转

    比较简单,就是要细心

    #include<iostream>
    using namespace std;
    void bigNumAdd(char *a,char *b,char *c){
        int len_a=strlen(a),len_b=strlen(b),len_c;
        int len=(len_a>len_b?len_b:len_a),flag=0;
        int len_m=(len_a>len_b?len_a:len_b);
        memset(c,'0',1005*sizeof(char)); //初始化 
        for(int i=0;i<len_a/2;i++){     //反转a,b 
            char t=a[i];
            a[i]=a[len_a-1-i];
            a[len_a-1-i]=t;
        }
        for(int i=0;i<len_b/2;i++){
            char t=b[i];
            b[i]=b[len_b-1-i];
            b[len_b-1-i]=t;
        }
        for(int i=0;i<len;i++){   //算长度相同的部分 
            int num=a[i]-'0'+b[i]-'0'+flag;
            flag=num/10;
            c[i]=num%10+'0';
        }
        if(len_a>len_b){      //算长度不同的部分 
            for(int i=len;i<len_a;i++){
                int num=a[i]-'0'+flag;
                flag=num/10;
                c[i]=num%10+'0';
            }
            if(flag>0) c[len_a]=flag+'0';
        }
        else if(len_a<len_b){
            for(int i=len;i<len_b;i++){
                int num=b[i]-'0'+flag;
                flag=num/10;
                c[i]=num%10+'0';
            }
            if(flag>0) c[len_b]=flag+'0';
        }
        else if(len_a==len_b)
            if(flag>0) c[len]=flag+'0';
        if(c[len_m]=='0') len_c=len_m;   //算结果的长度 
        else len_c=len_m+1;
        for(int i=0;i<len_c/2;i++){   //反转结果 
            char t=c[i];
            c[i]=c[len_c-1-i];
            c[len_c-1-i]=t;
        }
        for(int i=0;i<len_c;i++) cout<<c[i];   //输出结果 
        cout<<endl;
    }
    int main(){
        for(int i=0;i<5;i++){
            char a[1005],b[1005],c[1005];
            cin>>a>>b;
            bigNumAdd(a,b,c);
            //cout<<c<<endl;
        }
        return 0;
    }
  • 相关阅读:
    爬虫大作业之爬取笔趣阁小说
    数据结构化与保存
    使用正则表达式,取得点击次数,函数抽离
    爬取校园新闻首页的新闻
    网络爬虫练习
    Hadoop综合大作业
    理解MapReduce
    熟悉常用的HBase操作
    熟悉常用的HDFS操作
    爬虫大作业
  • 原文地址:https://www.cnblogs.com/jijiji/p/4845631.html
Copyright © 2011-2022 走看看