下面代码模拟了一套扑克牌(初始排序A~K,共13张)的操作过程。
操作过程是:
手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,….
如此循环操作,直到剩下最后一张牌也放在桌子上。
下面代码的目的就是为了求出最后桌上的牌的顺序。
初始的排列如果是A,2,3…K,则最后桌上的顺序为:
[2, 4, 6, 8, 10, Q, A, 5, 9, K, 7, 3, J]
package 二〇一七年三月二十四日;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class 纸牌移动 {
public static void main(String[] args) {
int n = 4, avg = 0, s = 0;
List<Integer> list = new ArrayList<Integer>();
list.add(8);list.add(9);list.add(17);list.add(6);
for (int i = 0; i < list.size(); i++) {
avg += list.get(i); //全部相加
}
avg = avg / list.size(); //得到平均数
for (int i = 0; i < list.size() - 1; i++) {
s++;
list.set(i + 1, list.get(i + 1) + list.get(i) - avg);
}
System.out.println("s:" + s);
}
}