ACM:蓝桥杯:大数处理:高进度加法

来源:互联网 发布:在线专家服务系统 php 编辑:程序博客网 时间:2024/06/05 00:55
#include<iostream>using namespace std;int arr[1001],k=0;int fun(int duan,string a,string b,int chang){//b短     int c=chang-1,d=duan-1;    while(c>=0){//进行累加,注意:数大的长         if(d>=0)    arr[k++]=(a[c]-'0')+(b[d]-'0');        else    arr[k++]=(a[c]-'0');        c--;        d--;    }    int t,r;//做进位运算     for(int i=0;i<k;i++){        t=arr[i]%10;        r=arr[i]/10;        arr[i]=t;        arr[i+1]=arr[i+1]+r;     }//如果最后的数大于10,就需要进位     if(r)   arr[k++]=t;//判断是否需要进位     for(int i=k-1;i>=0;i--)        cout<<arr[i];}int main(){    string a,b;    cin>>a>>b;    int lena=a.length();    int lenb=b.length();//需要考虑长短,然后带入函数     if(lena>lenb)   fun(lenb,a,b,lena);    else    fun(lena,b,a,lenb);} 
0 0
原创粉丝点击