高精度加法

题目分析:高精度的算法肯定会用到字符串,所以设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 12:20
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
最近拿到了正浩的提前批offer感觉自己的实力得到了肯定,也给了我更多底气
搞机墨镜猫:正浩提前批官网好像就只有电力电子软硬件,哥们投的是这两个岗位吗
26届校招投递进展
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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