1 条题解
-
1
#include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; int n; string s; string cal(string & s, int n) { string res = ""; reverse(s.begin(), s.end()); int t = 0; for(int i = 0; i < s.size(); ++ i) { if(s[i] != '.') { t += (s[i] - '0') * n; res += to_string(t % 10); t /= 10; } else res += '.'; } while(t) { res += to_string(t % 10); t /= 10; } reverse(res.begin(), res.end()); return res; } int main() { cin >> n >> s; for(int i = 0; i < n; ++ i) s = cal(s, 2); int pos = s.find('.'); vector<int> res; if(s[pos + 1] >= '5') { int num = 1; for(int i = pos - 1; i >= 0; -- i) { num = (s[i] - '0' + num); res.push_back(num % 10); num /= 10; } if(num) res.push_back(num % 10); for(int j = res.size() - 1; j >= 0; -- j) cout << res[j]; } else { for(int j = 0; j < s.size(); ++ j) { if(s[j] != '.') { cout << s[j]; } else break; } return 0; } return 0; }
- 1
信息
- ID
- 5558
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者