0
问题的措辞是 “Write a method writeSequence接受整数n作为参数并打印n个数字的对称序列,其中后接整数为1,结尾为1按升序整数从1开始,如下表所示:”使用递归打印出收敛和发散数字序列的故障
表基本上是:
1 = 1
2 = 1 1
3 = 2 1 2
4 = 2 1 1 2
5 = 3 2 1 2 3
6 = 3 2 1 1 2 3
我试图代码
public void writeSequence(int n){
if (n < 1){
throw new IllegalArgumentException();
}
if (n == 1){
System.out.print(n + " ");
}
else if (n == 2){
System.out.print(1 + " " + 1 + " ");
}
else if (n % 2 == 0){
System.out.print(n - (n/2) + " ");
writeSequence(n - (n/2));
System.out.print(n - (n/2) + " ");
}
else{
System.out.print(n-(n/2) + " ");
writeSequence(n - 2);
System.out.print(n-(n/2)+ " ");
}
}
对于输入1-10,我的代码没有为6,8和10生成正确答案。任何帮助都非常感谢。
编辑:在标题
编辑2
固定拼写:
我的结果是
1 = 1
2 = 1 1
3 = 2 1 2
4 = 2 1 1 2
5 = 3 2 1 2 3
6 = 3 2 1 2 3 (wrong)
7 = 4 3 2 1 2 3 4
8 = 4 2 1 1 2 4 (wrong)
9 = 5 4 3 2 1 2 3 4 5
10 = 5 3 2 1 2 3 5 (wrong)
如果有人能告诉我在哪里我已经在我的代码中的错误会很好!
*我的代码没有产生正确答案为6,8,和10 * - 究竟是什么做的,什么应该的做? – Bohemian
我在最后添加了一个编辑,显示我的结束表是什么样子,看起来应该是什么样子! – mikecal7
请参阅:[为什么“有人可以帮助我?”不是真正的问题?](http://meta.stackoverflow.com/q/284236) – EJoshuaS