求点拨,网易笔试编程第二题通过90%的case,不开心。。。

//代码如下
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextLong()) {
            long h = in.nextLong();
            long i =  (long)Math.sqrt(h); //这个地方会不会产生精度的问题?
        	
            while(i*i + i > h)
            {
            	i--;
            }
            if(h == 2) //没加这个判断之前是80%
            	System.out.println(0);
            else
            	System.out.println(i);
        }
    }
}

#网易#
全部评论
我用c++写的,实现方式和楼主一样,但是不知道为什么一直提示我要多个用例判断,我是做了多用例判断的,但是如果把i由sqrt变成硬搜的话,不提示多用例判断了,随之通过率肯定降低了,总之醉了
点赞 回复 分享
发布于 2016-08-03 09:26
c++  用 long long  直接 过
点赞 回复 分享
发布于 2016-08-03 09:32
不是大数?
点赞 回复 分享
发布于 2016-08-03 09:31
别他妈装逼行不,看着心烦
点赞 回复 分享
发布于 2016-08-03 09:29
用一元二次方程的求根公式,直接int取整。
点赞 回复 分享
发布于 2016-08-03 09:28
难道这题标准的做法不是二分吗=_=
点赞 回复 分享
发布于 2016-08-03 09:11
判断了2,为什么不判断1呢!
点赞 回复 分享
发布于 2016-08-03 00:19
大于等于。。。话说直接套公式就行了
点赞 回复 分享
发布于 2016-08-02 23:03
大于等于吧。 话说直接套公式就可以,一行。。
点赞 回复 分享
发布于 2016-08-02 22:58
原来硬搜也可以过的啊。。
点赞 回复 分享
发布于 2016-08-02 22:37
我也是90%同样不知道为什么
点赞 回复 分享
发布于 2016-08-02 22:29

相关推荐

06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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