同花顺一面

正好今天下雨,给本就不好的移动信号雪上加霜。本来是约的 4:00,手机显示的满信号,所以就没有跑出去。结果发现是假的满信号。。。跑出去重启了一下手机才和面试官接通电话。面试官还是挺好的,因为我没下会议 app,又等我下了会议软件。我主力系统 Linux,但是面试系统是 win,而且 win 是没有环境的,所以笔试是屏幕共享 + 在线编译器(没有补全。。。)

主要是做了一些自我介绍,说了些项目,然后就是脚本语言用哪些。算法的话考察了一个字符串转浮点数的算法。这种涉及精度的我写的还是很少的。。。

stof 的话写的还是有些问题,但是目前也没有改进思路,希望哪位大哥看到能够给予指点:

```C++
#include
(5488)#include
#include
(6079)#include

using namespace std;

int str2i(string s){
  int n = s.length();
  int b;
  for(int i = 0; i < n; ++i){
  int c = s[i] - '0';
    b+=pow(10, i);
  }
  return b;
}

double stof(string& s){
  int pos = s.find('.');
  string per = s.substr(0,pos);
  string aft = s.substr(pos);
  int a = str2i(per);
  double b = str2i(aft);
while(b>1) b*=0.1;
  return a+b;
}

int main(){
 cout.width(7);
 cout<<3444.676609986555211;
}
```
全部评论
你可以每一位乘一个小数,直接将小数部分字符串变数字可能会溢出
点赞 回复
分享
发布于 2021-10-19 17:35

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务