昨天网易前端的第一题 通过率90% 不知道是哪里的问题

JS写的 var readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal:false }); var n = -1;// 初始状态为负数,表示还没开始读取 var ans = 0; rl.on('line', function(line){ // javascript每行数据的回调接口   // 矩阵数据读取  var tokens = line.split(' '); var arr3=[] if(tokens.length!=4)return 0  for(var k=0;k<4;k++){ tokens[k]=parseInt(tokens[k])
    } for(var j=tokens[0];j<=tokens[1];j++)
        { for(var i=tokens[2];i<=tokens[3];i++)
            { var temp=(j/i).toFixed(20) arr3.push(temp)

            }
        } var res={} for(var m=0;m<arr3.length;m++){ if(!res.hasOwnProperty(arr3[m]))res[arr3[m]]=1   } var count=0  for(var item in res){ count++
        } console.log(count)
    }



);
#网易#
全部评论
估计是精度问题吧,js的浮点数精度比较低,你可以循环10个0.1相加看看结果,非要用js写的话就化到p/q的最简形式(求***,然后都除以***),中间加个分隔符用字符串连接作为键来用,这样就不会存在精度问题了,你这样直接相除,必定会存在精度问题,之前我用c++的时候也考虑了这个方法,但是直接用double就没精度问题就懒得改了
点赞 回复 分享
发布于 2017-03-26 10:35
直接ES6 的Set写的,自动去重
点赞 回复 分享
发布于 2017-04-02 00:40
都忘了什么题了…不过3道全a了…
点赞 回复 分享
发布于 2017-03-28 01:55
python三道题直接全通过。。。会不会被刷 T.T
点赞 回复 分享
发布于 2017-03-27 17:47
我想说这个时网易前端的吗,为什么跟我做的不一样呢,这个是最后那个问答题还是?
点赞 回复 分享
发布于 2017-03-26 22:24
哈哈,跟楼主同样的问题,当时我也是用的 toFixed,90 通过率,后来我将他们除以公约数化到最简,然后中间添加一个字母 a,作为 key,得到的结果仍然是 90,我觉得这个题目应该还有什么没考虑到吧。
点赞 回复 分享
发布于 2017-03-26 20:45
这题不是直接长度相乘,然后再去重吗?不过显示我没有通过。。。
点赞 回复 分享
发布于 2017-03-26 19:06
为什么我三道题都没有看到通过率,直接显示通过所有测试用例啊……我操作哪里不对吗
点赞 回复 分享
发布于 2017-03-26 11:41
你可以试试把toFix去掉
点赞 回复 分享
发布于 2017-03-26 11:31

相关推荐

12-27 22:35
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务