gpt4 book ai didi

java - 我在这个算法上做错了什么?

转载 作者:行者123 更新时间:2023-12-01 08:55:42 25 4
gpt4 key购买 nike

我已经在这段代码上停留了几个小时了。总和为S = 1-x + x^2 - x^3 + x^4
我们要求 XN ,起始值为 i = 0。每当前一个指数 (i) 为奇数时,我们就添加 x^i,并且如果前一个指数是偶数,我们减去x^i
我已经把它们放在一个循环中,但我似乎无法正确地得到总和。谁能告诉我我做错了什么?谢谢!

import java.util.Scanner;

public class hw1 {
public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
System.out.println("Sum = 1^0-x^1+x^2-x^3..+x^n");
System.out.println("Enter number X");
int X = scan.nextInt();
System.out.println("Enter number N");
int N = scan.nextInt();
int sum = 0;
for (int i = 0; i <= N; i++) {
if (i < N) {
if (i % 2 != 0) // if I is even
{
sum = sum - (X ^ i);
} else // if I is odd
{
sum = sum + (X ^ i);
}
}
}
System.out.println("Z is " + sum);
}
}
}

最佳答案

所以我修复了您的代码中的一些问题:

  1. 我切换了^ Math.pow 的运算符(正如@Nick Bell 指出的那样,是按位异或) .
  2. 我修正了你的变量的拼写 xn 。在 Java 中,约定以小写字母开头的变量名称。大写字母( XN )保留用于常量(标记为 final 的字段)和类(而不是对象)。请注意,这只是一个约定,代码在两种情况下都可以正常工作。它只是有助于阅读代码。
  3. 您的奇/偶检查已颠倒:x % 2 == 0true对于偶数。
  4. 您反转奇/偶检查的原因可能是 sum 上的两个操作。被颠倒了。与问题第一段中的问题描述进行比较,您就会发现哪里出了问题。
  5. if i < N检查是多余的。如果您确实想将计算限制为 i < N ,您应该直接在第一个 for 循环中指定它。
  6. 我添加了两个带有无限循环的 try/catch block ,这些 block 在输入整数时会中断,因为您之前的代码会引发异常,并且如果您输入格式正确的整数以外的内容(例如字母或小数值),则会停止)。由您决定保留或删除它们。
  7. 顺便说一下,初始化xn0现在是多余的,因为您的代码保证立即为它们分配另一个值。

这是更新后的代码。

public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
System.out.println("Sum = 1^0-x^1+x^2-x^3..+x^n");
System.out.println("Enter number X");
int x = 0;
while (true) {
try {
x = Integer.parseInt(scan.nextLine());
break;
} catch (NumberFormatException e) {
System.out.println("Enter an integer.");
}
}
System.out.println("Enter number N");
int n = 0;
while (true) {
try {
n = Integer.parseInt(scan.nextLine());
break;
} catch (NumberFormatException e) {
System.out.println("Enter an integer.");
}
}
double sum = 0;
for (int i = 0; i <= n; i++) {
if (i % 2 == 0) // if I is even
sum = sum + Math.pow(x, i);
else // if I is odd
sum = sum - Math.pow(x, i);
}
System.out.println("Z is " + sum);
}
}

关于java - 我在这个算法上做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42048105/

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