gpt4 book ai didi

java - 使用 Java 交替阶乘项

转载 作者:行者123 更新时间:2023-12-01 13:10:15 25 4
gpt4 key购买 nike

我正在尝试用Java编写一个循环,它可以输出具有这种形式的一系列的总和... 1! -3! + 5! – 7! + ... 最多 n(用户将 n 指定为正奇数)。例如,如果用户为 n 输入 5,那么该系列应该计算出 1! -3! + 5! (困难部分)并使用基本的打印语句将其显示给用户(简单部分)。如果用户给出 9,那么计算出的总和将来自 1! -3! + 5! - 7! + 9!.

为了方便起见,假设用户总是在任何时候输入一个正奇数。我现在只是担心尝试使用循环求和。

我想出的最接近的代码来做到这一点......

int counter = 1;
int prod = 1;
n = console.nextInt();
while (counter <= n)
{
prod = prod * counter;
counter++;
}
System.out.println(prod);

这确实有效!但我发现很难按照指定的方式完成它。任何指示都会很棒。

最佳答案

在计算阶乘时,请保留迄今为止该系列的运行总计。每当 counter % 4 == 1 时,将阶乘添加到运行总计中。每当 counter % 4 == 3 时,从运行总计中减去阶乘。

您说“任何指针” - 我认为这意味着您希望我为您编写代码。

更新

这与您的原始代码密切相关,因此您会尽可能容易理解。我已经改变了我需要改变的最低限度,以使其正常工作。

int counter = 1;
long prod = 1;
long total = 0;

n = console.nextInt();

while (counter <= n)
{
prod = prod * counter;
if( counter % 4 == 1 ) {
total += prod;
} else if (counter % 4 == 3) {
total -= prod;
}

counter++;
}

System.out.println(total);

首先,请注意我已将 prod 更改为 long。这是因为阶乘变得非常大非常快。使用 BigInteger 会更好,但我猜您还没有了解这些。

现在,其中有两个条件,即何时将 prod 添加到总数中,以及何时从总数中减去 prod。它们的工作原理都是检查 counter 除以 4 时的余数 - 换句话说,检查我们要达到的阶乘,并相应地执行正确的操作。

关于java - 使用 Java 交替阶乘项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22931938/

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