码迷,mamicode.com
首页 > 其他好文 > 详细

1047 Integer Inquiry

时间:2018-08-09 12:20:08      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:cout   span   --   temp   ret   scan   using   长度   while   

String 大数加法模板

#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;

//高精度加法
//只能是两个正数相加
string add(string str1,string str2)//高精度加法
{
    string str;

    int len1=str1.length();
    int len2=str2.length();
    //前面补0,弄成长度相同
    if(len1<len2)
    {
        for(int i=1;i<=len2-len1;i++)
           str1="0"+str1;
    }
    else
    {
        for(int i=1;i<=len1-len2;i++)
           str2="0"+str2;
    }
    len1=str1.length();
    int cf=0;
    int temp;
    for(int i=len1-1;i>=0;i--)
    {
        temp=str1[i]-0+str2[i]-0+cf;
        cf=temp/10;
        temp%=10;
        str=char(temp+0)+str;
    }
    if(cf!=0)  str=char(cf+0)+str;
    return str;
}


int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        string sum="0";
        string str1;
        while(cin>>str1)
        {
            if(str1=="0")break;
            sum=add(sum,str1);
        }
        cout<<sum<<endl;
        if(T>0)cout<<endl;
    }
    return 0;

}

 

1047 Integer Inquiry

标签:cout   span   --   temp   ret   scan   using   长度   while   

原文地址:https://www.cnblogs.com/nr1999/p/9447861.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!