gpt4 book ai didi

java - 改进操作顺序并测试值是否有小数

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:21 24 4
gpt4 key购买 nike

我正在尝试创建一个程序,打印出最多 n = 100 的五角形数。五角形数定义为 n(3n-1)/2,对于 n = 1、2、3,因此第一个五角形数将是 1, 5, 12, 22..etc

package mathematical.functions.test;
import java.util.Scanner;
public class MathematicalFunctionsTest {
public static int getPentagonalNumber(int n) {
int i = 0;
double part_one = (3 * n) - 1;
double part_two = part_one / 2;
while (i < 100){
if (part_two == int(part_two))
{
System.out.println(n);
i++;
}
else{
}
}
}

这只是我上面程序的一部分。我现在有两个问题:

  1. 我不知道如何正确执行操作顺序。我所做的是将操作 n(3n - 1)/2 分解为 part_one 和 part_two。这是好的做法吗?
  2. 查看 while 循环中的嵌套 if,我试图测试 part_two 是否为整数(即​​没有小数)。我已经尝试了很多东西,但 Java 不允许我包含 % 运算符。

最佳答案

您遗漏了方程式的一部分(n 的因数)。您可以像这样将它们组合成一条语句:

double num = n * (3 * n - 1) / 2

只需像往常一样使用方括号。 Java 理解正确的操作顺序。

尝试以下检查数字是否为整数:

if ((num == Math.floor(num)) && !Double.isInfinite(num)) {
// integral type
}

这通过对数字进行取整(截断小数点)并检查它是否与原始数字相同来实现。它还添加了检查以确保数字是有限的。

关于java - 改进操作顺序并测试值是否有小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36248010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com