解题思路:
本题使用单链表实现,循环链表也可以处理,逻辑差不多,只是控制不同而已。
注意事项:
每次都是从第一个开始读数
参考代码:
import java.util.Scanner; public class C1213 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ F(sc.nextInt()); } sc.close(); } private static void F(int n){ Node head = new Node(null, null); Node p = head; for(int i = 1; i <= n; i++){ p.next = new Node(i, p.next); p = p.next; } int count = 0; p = head; while(head.next.next.next != null){ if(p.next == null){ p = head; count = 2; } if(++count % 2 == 0){ if(count > 2) System.out.printf(" %d", p.next.data); else System.out.print(2); p.next = p.next.next; }else{ p = p.next; } } System.out.printf("\n%d %d\n", head.next.data, head.next.next.data); } //链表节点类 private static class Node{ private Integer data; private Node next; public Node(Integer data, Node next){ this.data = data; this.next = next; } } }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题8.1 (Java代码)浏览:781 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:900 |
简单的a+b (C语言代码)浏览:631 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:798 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:614 |
简单的a+b (C语言代码)浏览:577 |
DNA (C语言代码)浏览:540 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:834 |
Tom数 (C语言代码)浏览:527 |
陈教主的三角形 (C语言代码)浏览:1143 |