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: dulun@xiyoulinux.org
> 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;
}