zoukankan      html  css  js  c++  java
  • 大数相加与大数相减

    大数相加模板:

    string big_add(string a,string b){
        memset(sum,0,sizeof(sum));
        int len1=a.size();
        int len2=b.size();
        int pos=0;
        int i,j;
        for(i=len1-1,j=len2-1;i>=0&&j>=0;i--,j--){
            int y=a[i]-'0'+b[j]-'0';
            if(y+sum[pos]<10) {
                sum[pos]+=y;
                pos++;
            }
            else {
                sum[pos]+=y-10;
                sum[pos+1]++;
                pos++;
            }
        }
        if(pos<len1){
            for(int t=i;t>=0;t--){
                sum[pos++]+=a[t]-'0';
            }
        }
        if(pos<len2){
            for(int t=j;t>=0;t--){
                sum[pos++]+=b[t]-'0';
            }
        }
        if(sum[pos]!=0) pos++;
        string s="";
        for(int i=pos-1;i>=0;i--){ 
            char x;
            x=sum[i]+'0';
            s+=x;
        }
        return s;
    }

    大数相减模板(含判断):

    string  big_jian(string a,string b){//规定a>b 
        int len1=a.size();
        int len2=b.size();
        int i,j;
        for(i=len2-1,j=len1-1;i>=0&&j>=0;i--,j--){
            a[j]=a[j]-b[i]+'0';
            if(a[j]<'0'){
                int k=j-1;
                while(a[k]<='0'){
                        a[k]='9';
                        k--;
                }
                a[k]-=1;
                a[j]+=10;
            }
        }
        string s="";
        for (i = 0; i<len1; i++)    if (a[i] != '0') break;
        for (; i<len1; i++)    s+=a[i];
        return s;
    }
    bool check (string a,string b){
        if(a.size()>b.size())    return 0;
        else if(a.size()<b.size()) return 1;
        return a<=b;
    } 
  • 相关阅读:
    PDO应用
    分页查询
    PHP去除数组中重复数据的两个例子
    数据库访问(现用基本格式)
    克隆、加载类
    抽象类和接口
    静态
    PHP基础
    数据库的常用函数
    数据库的高级查询
  • 原文地址:https://www.cnblogs.com/Accepting/p/11671383.html
Copyright © 2011-2022 走看看