题目描述
blablabla
样例
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
string change(string str, int n) {
int k = str.find('.');
if (k == -1) { // 如果是整数的情况下, 在后面加上一个.
str += '.';
k = str.find('.');
}
// 现在所有字符都统一了, 进行移位操作, 目的是去掉小数点
string res = str.substr(0, k) + str.substr(k + 1);
// 去除前导零操作
while (res.size() && res[0] == '0') res = res.substr(1), k--;
// 判断是否已经为空了
if (res.empty()) k = 0;
// 如果比答案大, 比要求的数字大
if (res.size() > n) res = res.substr(0, n);
else // 需要在结尾补上零
{
res += string(n - res.size(), '0');
}
// 所有答案都弄好了
return "0." + res + "*10^" + to_string(k);
}
int main() {
int N;
string a, b;
cin >> N >> a >> b;
string res1 = change(a, N);
string res2 = change(b, N);
if (res1 == res2) cout << "YES " << res1 << endl;
else cout << "NO " << res1 << " " << res2 << endl;
return 0;
}