高精度加法模板

string high_add(string str1, string str2) //传入两个加数,返回结果
{
    int len1 = str1.size () ;
    int len2 = str2.size () ;

    while(len1 < len2)
    {
        str1 = '0'+ str1 ;
        len1 ++ ;
    }
    while(len2 < len1)
    {
        str2 = '0' + str2 ;
        len2 ++;
    }

    str1 = '0' + str1 ;
    str2 = '0' + str2 ;
    for(int i = str1.size () - 1 ; i > 0  ; i--)
    {
        str1[i] = str1[i] + str2[i] - '0' ;
        if(str1[i] - '0' > 9)
        {
            str1[i] = str1[i] - 10 ;
            str1[i-1] = str1[i-1] + 1 ;
        }
    }
    if(str1[0] == '0')
    {
        str1 = str1.substr ( 1 , str1.size ()-1 ) ;
    }
    return str1 ;
}

 

posted @ 2013-04-29 15:18  小仪在努力~  阅读(138)  评论(0编辑  收藏  举报