原题链接
简单思路
reverse和split处理封装成两个函数,main函数分情况去调用
问题
问题出在浮点数的reverse,最初是没有考虑到小数部分以0结尾(因为我的最终结果是string形式所以每一个数字都会保留)
例如:
input:600.084
output:6.48
而我的最初的代码给出的结果会是6.480
发现这个问题之后参考了网上的方法,多写了一个函数
string handleFloat(double in) {
ostringstream oss;
oss << in;
return oss.str();
}
对于小数情况多加一步,去掉可以去掉的0
结果这么一改错得更多了×
下了第一个WA的测试用例发现还是我想得太简单×
input:0.000000
output:0.0
按照我的现有方法输出的是 0
于是在这个方法上加了个判断,只操作那些有多余后导0的res
string handleFloat(string in) {
if (atoi(in.c_str()) == atof(in.c_str()<

本文介绍了在使用C++解决数字反转问题时遇到的浮点数处理挑战,包括小数部分以0结尾的情况。通过提供代码示例展示了从错误到修正的过程,最终采用纯字符串操作来避免数值过大导致的问题。
最低0.47元/天 解锁文章
150

被折叠的 条评论
为什么被折叠?



