模拟 数论/数学 -- 题解 P6467 【[COCI2008-2009#6] BUKA】

jijidawang

2020-04-24 18:56:46

Solution

- [题目传送门](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; } ```