模拟 数论/数学 -- 题解 P6467 【[COCI2008-2009#6] BUKA】
jijidawang
2020-04-24 18:56:46
- [题目传送门](https://www.luogu.com.cn/problem/P6467)
我们设这两个数分别为 $10^a$ 和 $10^b$(假设 $a\ge b$)。
$10^a+10^b$:显然将 $10^a$ 中的第 $b$ 位加上 $1$ 即可。
$10^a\times 10^b$:显然是 $10^{a+b}$。
依题意模拟即可。
Code:
```cpp
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
string a,b;
char op;
cin>>a>>op>>b;
int len1=a.length(),len2=b.length();
if (len1<len2) swap(a,b),swap(len1,len2); //从小到大排序
if (op=='+')
++a[len1-len2],cout<<a; //将第 b 位 +1
else
{
putchar('1');
for (int i=1;i<len1;i++) putchar('0'); //注意数字前面有个 1 所以长度要 -1
for (int i=1;i<len2;i++) putchar('0');
}
return 0;
}
```