【发布时间】:2020-03-22 01:37:58
【问题描述】:
我需要创建一个 Java 程序,它将接受 10 个整数,如果输入的数字是奇数,则将其提升到 ^1 次方,如果用户输入另一个奇数,则再次将其提升到下一个次方 ^2,与偶数相同但是,功率从 10 开始,并且在输入的每个偶数中都会减少。之后,我必须显示所有偶数和奇数的总和。
难的是不允许使用数组和java.util.Math。
例如:
程序要求用户输入10个整数:
用户输入(整数 1-10):
1 ^ 1 = 1(奇数)
2 ^ 10 = 1024(偶数)
3 ^ 2 = 9(奇数)
4 ^ 9 = 262 114(偶数)
5 ^ 3 = 125(奇数)
6 ^ 8 = 1 679 616(偶数)
7 ^ 4 = 2 401(奇数)
8 ^ 7 = 2 097 152(偶数)
9 ^ 5 = 59 049(奇数)
10 ^ 6 = 1 000 000(偶数)
输出: 偶次幂之和
奇数次幂的总和
感谢 Devon,我尝试运行程序但出现逻辑错误。
public class SumOfOddEvenMain {
public static void main(String[] args) {
SumOfOddEven temp = new SumOfOddEven();
System.out.println(temp.Run());
}
}
import java.util.Scanner;
public class SumOfOddEven {
private long sumOfOdds;
private long sumOfEvens;
private int countOfOdds;
private int countOfEvens;
public SumOfOddEven() {
countOfOdds = 1;
countOfEvens = 10;
sumOfOdds = 0;
sumOfEvens = 0;
}
public String Run() {
Scanner in = new Scanner(System.in);
for(int i = 0; i < 10; i++){
System.out.println("Enter integer number " + i);
int number = in.nextInt();
if(number % 2 == 0) {
for(int j = countOfEvens; j > 1; j--) {
number *= number;
}
sumOfEvens += number;
countOfEvens--;
}
else {
for(int k = countOfOdds; k > 1; k--) {
number *= number;
}
sumOfOdds += number;
countOfOdds++;
}
}
in.close();
return "Sum of odds: " + sumOfOdds + "\nSum of evens: " + sumOfEvens;
}
}
程序输出:
Enter integer number 0
1
Enter integer number 1
2
Enter integer number 2
3
Enter integer number 3
4
Enter integer number 4
5
Enter integer number 5
6
Enter integer number 6
7
Enter integer number 7
8
Enter integer number 8
9
Enter integer number 9
10
Sum of odds: -495568963
Sum of evens: 0
【问题讨论】:
-
请发布您为解决此问题而编写的代码,以及您遇到的问题。
-
"...不允许使用数组和 java.util.Math":没问题 (:-))。你可以在没有这些的情况下度过难关。你觉得这个作业最麻烦的是什么?
-
是的,我们的教练说如果我们遇到 int 错误就使用 float。整数最大值 = 2,147,483,647
标签: java algorithm loops formula control-structure