首页 > 解决方案 > 如何确定一个 int 是否是完美的正方形?

问题描述

我的代码似乎通过了许多案例,但我的代码似乎未能通过特定的私人测试案例。谁能帮我 ?

static boolean isSquare(int n) {
    IntStream y=IntStream.range(1, n).map(((int x)->{return x*x;}));
    return y.anyMatch(x->(x==n));
}

标签: javalambdajava-8java-stream

解决方案


1 失败,因为 1 也是一个完美的正方形,而您当前的代码目前无法处理这种情况。将您的代码更改为:

static boolean isSquare(int n) {
    return IntStream.rangeClosed(0, n).map(x -> x * x).anyMatch(x -> x == n);
}

请注意我们如何使用rangeClosed而不是range包括上限和下限。


推荐阅读