题意:多组数据,每一组数据输入若干浮点数,以 0 结束,要求对每组数据输入的浮点数求和输出(高精)
轮子:NOI 2016 《国王饮水记》,€€₣ 向选手下发了浮点数高精库,用就好了。毕竟懒得造轮子
坑点:注意不能输出多余的末尾零。且结果可能是整数,不能输出小数点。
核心代码:(毕竟完整代码七八百行放这里不合适)
// 去除末尾零,相当于反转字符串去掉前导零外加判断小数点
std::string clear(std::string s) {
int len = s.size() - 1;
for (int i = len; i >= 0; --i) {
if (s[i] == '0') --len;
else break;
}
if (s[len] == '.') --len;
return s.substr(0, len + 1);
}
void solution() {
std::string s;
Decimal ans = 0;
while (std::cin >> s && s != "0") ans += s;
std::cout << clear(ans.to_string(0)) << std::endl;
}