高精度加法

题目分析:高精度的算法肯定会用到字符串,所以设char数组就可以了。

第一步:设两个char数组,求出两者长度的最大者(方便输出最后的值)。

第二步:设两个int数组,(为什么第一个不是int数组,可以自己编程一下试试)将第一步的两个char数组进行倒叙转换。

第三步:int数组两者相加,以最大的长度为限定条件,关于进位问题,看具体代码即可。

第四步:看数组两者相加进了一位,如果最高位的上一位的结果不为零,则输出时的最大长度++;

第五步:倒序输出即可。

#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
#include <cmath>
using namespace std;
int main ()
{
    char a[100000];         //第一步
    char b[100000];

    cin >> a >> b;

    int len1=strlen(a);
    int len2=strlen(b);
    int len=max(len1,len2);

    int aa[100000];         // 第二步(你自己定义了int数组之后,会自动将其值设为0)
    int bb[100000];

    for (int i=0;i<len1;i++)  aa[i]=a[len1-i-1]-'0';
    for (int i=0;i<len2;i++)  bb[i]=b[len2-1-i]-'0';

    for (int i=0;i<len;i++)    //第三步
    {
        aa[i]=aa[i]+bb[i];
        if(aa[i]>=10)
        {
            aa[i]=aa[i]-10;
            aa[i+1]++;
        }
    }
    if(aa[len]!=0)。              //第四步
    {
        len++;
    }
    for (int i=len-1;i>=0;i--)   //第五步
    {
        cout << aa[i];
    }
    cout << endl;
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-15 17:46
暑期就挂了,秋招还有机会吗
大聪明777:研发提前批,14号刚开的,官网上面的配图上有写。提前批没过的话,秋招还可以投,不过前面的笔试/面试记录会被保留,供秋招参考
26届校招投递进展
点赞 评论 收藏
分享
盖茨伯爵:一样兄弟,我从4月开始发到现在了,都三四百个了
无实习如何秋招上岸
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务