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