【发布时间】:2017-03-03 04:56:20
【问题描述】:
编写一个程序,它将接受 10 个整数并将它们存储在一个数组中。程序应该测试数字序列是否是回文序列。这意味着它向前读取与向后读取相同。这里有两个例子:
请输入 10 个整数: [1|2|3|7|7|7|7|3|2|1]
序列是回文的。
请输入 10 个整数: [1|2|3|7|7|7|7|2|3|1]
序列不是回文的。
我的代码是:
import java.util.Scanner;
public class problem4 {
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please type 10 integers:");
int[] num = new int[10];
int[] reverse = new int[10];
for (int a = 0; a < num.length; a++) {
num[a] = scan.nextInt();
}
int b = 0;
int c = 9;
while (c != 0) {
reverse[c] = num[b];
c--;
b++;
if (c == 0) break;
}
if (num[0] == reverse[9] && num[1] == reverse[8] && num[2] == reverse[7] && num[3] == reverse[6] && num[4] == reverse[5])
System.out.println("The sequence is palindromic.");
else
System.out.println("The sequence is not palindromic.");
}
}
但是没有构建消息,它总是说序列是回文的,无论我输入什么。
【问题讨论】:
-
为什么不直接取值,将它们放在 one 数组中,然后从两端进行迭代,以确保前端和结束元素一路上相同?跨度>
-
如果您没有有使用数组,您可以将前 5 个压入堆栈,然后根据堆栈中的值
pop()-ed 检查接下来的 5 个。
标签: java arrays if-statement while-loop sequence