【发布时间】:2023-01-30 00:30:52
【问题描述】:
所以我的问题是,我的输出似乎是正确的,除了它给了我 0/10 的信用,因为在每种情况下输出倒数到 1 后的空白。它说我需要一个换行符,但我已经尝试了几件事,每次都是相同的输出。
2.31 LAB:冰雹序列 给定一个正整数 n,以下规则将始终创建一个以 1 结尾的序列,称为冰雹序列:
如果 n 是偶数,则除以 2 如果 n 是奇数,则将其乘以 3 并加 1(即 3n +1) 继续直到 n 为 1 编写一个程序,读取一个整数作为输入,并打印从输入的整数开始的冰雹序列。格式化输出,以便每行打印十个整数,每个整数由制表符 (\t) 分隔。
输出格式可以实现如下:
System.out.print(n + "\t");
例如:如果输入是:
25 输出是:
25 76 38 19 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
import java.util.Scanner;
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int n;
n = scnr.nextInt();
System.out.print(n + "\t");
int count = 1;
while (n > 1) {
if (n % 2 == 0) {
n = n * 1 / 2;
} else {
n = 3 * n + 1;
}
System.out.print(n + "\t");
count++;
if (count % 10 == 0) {
System.out.print("\n");
}
}
}
这是我想出的,我是 java 的新手,所以这可能是我想得太多了,任何想法都会受到赞赏。
【问题讨论】:
-
System.out.print("\n");->System.out.println(); -
我还会考虑查看
String#format和System.out.printf以获取其他格式选项 -
n = n * 1 / 2可以简化为n /= 2。
标签: java