作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在这段代码上停留了几个小时了。总和为S = 1-x + x^2 - x^3 + x^4
。
我们要求 X
和 N
,起始值为 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);
}
}
}
最佳答案
所以我修复了您的代码中的一些问题:
^
Math.pow
的运算符(正如@Nick Bell 指出的那样,是按位异或) .x
和n
。在 Java 中,约定以小写字母开头的变量名称。大写字母( X
和 N
)保留用于常量(标记为 final
的字段)和类(而不是对象)。请注意,这只是一个约定,代码在两种情况下都可以正常工作。它只是有助于阅读代码。x % 2 == 0
是 true
对于偶数。sum
上的两个操作。被颠倒了。与问题第一段中的问题描述进行比较,您就会发现哪里出了问题。if i < N
检查是多余的。如果您确实想将计算限制为 i < N
,您应该直接在第一个 for 循环中指定它。x
和n
至0
现在是多余的,因为您的代码保证立即为它们分配另一个值。这是更新后的代码。
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/
我是一名优秀的程序员,十分优秀!