|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 |
package
huawei;import java.util.Scanner;public class 约瑟夫环 { private
static class Node { public
int
num; public
Node next; public
Node(int
n) { num=n; } } public
static String getOutString(int
len, String str, int
m) { String ans=""; String s[]=new
String[len]; int
n[]=new int[len]; s=str.split(","); for(int
i=0;i<len;i++) { n[i]=Integer.parseInt(s[i]); // System.out.println(n[i]); } //建立循环链表 Node node=new
Node(n[0]); Node header=node; for(int
i=1;i<len;i++) { node.next=new
Node(n[i]); node=node.next; } //循环输出 node.next=header; node=header; System.out.println(node.num); while(node.next!=node) { for(int
i=0;i<m-2;i++) { node=node.next; } // System.out.println(node.next.num); ans+=node.next.num; m=node.next.num; node.next=node.next.next; node=node.next; } //System.out.println(node.num); return
ans+node.num; } public
static void main(String[] args) { //Scanner s=new Scanner(System.in); // System.out.println("请输入人的个数"); // int count=s.nextInt(); System.out.println(getOutString(4, "3,1,2,4", 7)); }} |
HW输入字符串长度,字符串,计数m。从前往后计数,当数到m个元素时,m个元素出列,同时将该元素赋值给m,然后从下一个数计数循环,直到所有数字都出列,给定的数全部为大于0的数字。输出出队队列。
原文:http://www.cnblogs.com/hansongjiang/p/3590630.html