我是靠谱客的博主 生动苗条,最近开发中收集的这篇文章主要介绍数组模拟加法(每日一练 11.30)A + B problem,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

A + B problem

Description

Calculate A + B.

Input

Each line will contain two integers A and B. Process to end of file. (EOF)

Output

For each case, output A + B in one line.

Sample Input 1

2 3
4 5

Sample Output 1

5
9

思路:

调皮的毛学姐又整出一道很坑的题,开始我以为就是简单的a+b,在 WA 3次后我意识到这题的数据有很大的bug,大到long long都呈不下,所以这种情况只能用数组模拟求和的方法来做。代码如下:

#include<stdio.h>
#include<string.h>
int main()
{
    char a[1000],b[1000];
    int c[1000],d[1000],i;
    while(scanf("%s%s",&a,&b)!=EOF)
    {
        memset(c,0,sizeof(c));//将数组初始化为0
        memset(d,0,sizeof(d));
        for(i=0;i<strlen(a);i++)
            c[i]=a[strlen(a)-1-i]-'0';//将数据倒序输入一个新的数组
        for(i=0;i<strlen(b);i++)
            d[i]=b[strlen(b)-1-i]-'0';
        for(i=0;i<(strlen(a)>strlen(b)?strlen(a):strlen(b));i++)//模拟求和
            c[i+1]+=(c[i]+d[i])/10,c[i]=(c[i]+d[i])%10;
        if(c[i])for(int j=i;j>=0;j--)//排除数据开头为0的情况,即有没有进位
            printf("%d",c[j]);
        else for(int j=i-1;j>=0;j--)
            printf("%d",c[j]);
        printf("n");
    }
    return 0;
}

用vector的方法

#include<iostream>
#include<vector>
using namespace std;
const int N = 1e6 + 10;
string s1, s2;
vector<int> a, b, c;
vector<int> add(vector<int> a, vector<int> b)
{
    if(a.size() < b.size())return add(b, a);
    vector<int > c;
    int t = 0;
    for(int i = 0; i < a.size(); i++)
    {
        t += a[i];
        if(i < b.size())t += b[i];
        c.push_back(t % 10);
        t /= 10;
    }
    if(t)c.push_back(t);
    return c;
}
int main()
{
    cin >> s1 >> s2;
    int len1 = s1.size(), len2 = s2.size();
    for(int i = len1 -1; i >= 0; i--)
        a.push_back(s1[i] - '0');
    for(int i = len2 - 1; i >= 0; i--)
        b.push_back(s2[i] - '0');
    a = add(a, b);
    for(int i = a.size() - 1; i >= 0; i--)
        cout << a[i];
    cout << endl;
    return 0;
}

最后

以上就是生动苗条为你收集整理的数组模拟加法(每日一练 11.30)A + B problem的全部内容,希望文章能够帮你解决数组模拟加法(每日一练 11.30)A + B problem所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部