java - 如何确定一个 int 是否是完美的正方形?
问题描述
我的代码似乎通过了许多案例,但我的代码似乎未能通过特定的私人测试案例。谁能帮我 ?
static boolean isSquare(int n) {
IntStream y=IntStream.range(1, n).map(((int x)->{return x*x;}));
return y.anyMatch(x->(x==n));
}
解决方案
1 失败,因为 1 也是一个完美的正方形,而您当前的代码目前无法处理这种情况。将您的代码更改为:
static boolean isSquare(int n) {
return IntStream.rangeClosed(0, n).map(x -> x * x).anyMatch(x -> x == n);
}
请注意我们如何使用rangeClosed
而不是range
包括上限和下限。
推荐阅读
- java - 如何在我的代码中实现“BigInteger 到 Integer,反之亦然”,无法解决不兼容的类型错误
- java - 使用私钥生成 JSON Web 令牌 (JWT)
- google-colaboratory - 如何以编程方式检查连接到哪个运行时 Google Colab 笔记本?
- postgresql - 如何设置 Narayana ConnectionManager 使其在某些事务后不会停止
- rust - 如何在 rust 中找到或插入 Vec
- c# - 是否可以通过 PostgreSQL 的某些 IF 条件使用 WHERE?
- amazon-web-services - 如何通过 AWS cognito 的订阅者(获取帖子列表)获取多个用户?
- python-3.x - map() 函数如何在 python 中工作?
- visual-studio-code - 如何在 Visual Studio Code (VSCode) 中删除块注释
- c# - 在.net c#中使用哪种条形码字体扫描15个字母大小