2016西电校赛网络赛 Problem A z1+z2

Problem A z 1 + z 2

问题

已知两个复数 z 1 , z 2 ,万神希望知道 z 1 + z 2 。
因为被杜神坑过,万神非常讨厌浮点精度问题,所以他保证这两个复数的实
部和虚部都是 10 9 以内的非负整数。
输入格式
输入包含多组数据(不超过 100 组),请处理到文件结束。
每组数据只有 1 行,包含 z 1 , z 2 ,用空格分割。
保证 z 1 , z 2 的形式严格满足 a + bi,且 a, b 都是整数,0 ≤ a, b ≤ 10 9 。

输出格式

对于每组数据输出 1 行,包含 z 1 + z 2 。你的输出也应该严格满足 a + bi 的
形式,即使 a 或 b 为 0 也不例外。

输入样例

10+5i 2+3i
1+0i 2+0i
0+3i 0+4i
0+0i 0+0i

输出样例

12+8i
3+0i
0+7i
0+0i

没啥说的

/************************************************************************* > File Name: a.cpp > Author: dulun > Mail: [email protected] > Created Time: 2016年04月20日 星期三 11时51分16秒 ************************************************************************/

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<string>
#include<cstdlib>
#include<algorithm>
#define LL long long
using namespace std;

const int N = 50086;

int main()
{
    string z1, z2;
    while(cin>>z1>>z2)
    {
        int a = 0, i;
        for(i = 0; z1[i] != '+'; i++)
        {
            int t = z1[i] - '0';
            a*=10;
            a+=t;
        }
        i++;
        int b = 0;
        for(int j = i; z1[j] != 'i'; j++)
        {
            int t = z1[j] - '0';
            b*=10;
            b+=t;
        }

        int c = 0;
        for(i = 0; z2[i] != '+'; i++)
        {
            int t = z2[i] - '0';
            c*=10;
            c+=t;
        }
        i++;
        int d = 0;
        for(int j = i; z2[j] != 'i'; j++)
        {
            int t = z2[j] - '0';
            d*=10;
            d+=t;
        }

        printf("%d+%di\n", a+c, b+d);

    }

    return 0;
}

你可能感兴趣的:(2016西电校赛网络赛 Problem A z1+z2)