cpp
复制代码
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main() {
vector<char>v;
int n,tag;
string d;
cin >> n >> d;
for (int i = d.size() - 1; i >= 0;i--) {
if (d[i] != '.') {
v.push_back(d[i]-'0');
}
else {
tag = i;
}
}
tag = d.length() - tag - 1;
for (int i = 0; i < n;i++) {
int tmp = 0;
for (int j = 0; j < v.size();j++) {
v[j] *= 2;
v[j] += tmp;
tmp = v[j] / 10;
v[j] %= 10;
}
if (tmp) {
v.push_back(tmp);
}
}
if (v[tag - 1] >= 5) {
v[tag] += 1;
}
for (int i = v.size() - 1; i >= tag; i--) {
cout << int(v[i]);
}
return 0;
}