package org.zttc.service;
public class DistributeClass {
public static final Boolean order =true;
public static void main(String[] args) {
//把分班后数据存入二位数组
int test[][] = divideByClass(64,8,order);
String str = "顺序";
if(!order){
str = "倒序";
}
for(int i=0;i<8;i++){
for(int j=0;j<test[i].length;j++){
int x = test[i][j];
if(x != 0){
System.out.println("进行"+str+"排列的结果:第"+(i+1)+"班被分配的第"+(j+1)+"位学生总体排名为:"+x+"");
}
}
}
}
public static int[][] divideByClass(int stuNum,int classNum,boolean type){
//定义一个二维数组,初始化容量为 stuNum=64 classNum=8 ,int[8][9]
int[][] rs = new int[classNum][stuNum/classNum+1];
for(int i=0;i<stuNum;i++){//i<64
int x = i%classNum;//求余 64/8 0 1 2 3 4 5 6 7 横坐标
int y = i/classNum;//整除 64/8 0 1 2 3 4 5 6 7 8 纵坐标
//求余x=0,整除y!=0的时候,type取反
if(x==0 && y!=0){ // 8-false 16-true 24-false 32-true 40-false 48-true 56-true 64-false
type=!type;
}
if(!type){
x = classNum-i%classNum-1; //班级数-序号%班级数-1
y = i/classNum;//序号/班级数
}
rs[x][y]=i+1;
/** x求余 y整除 rs数组
* i=0;x=0;y=0;type=true,rs[0][0]=1;
* i=1;x=1;y=0;type=true,rs[1][0]=2;
* i=2;x=2;y=0;type=true,rs[2][0]=3;
* i=3;x=3;y=0;type=true,rs[3][0]=4;
* i=4;x=4;y=0;type=true,rs[4][0]=5;
* i=5;x=5;y=0;type=true,rs[5][0]=6;
* i=6;x=6;y=0;type=true,rs[6][0]=7;
* i=7;x=7;y=0;type=true,rs[7][0]=8;
* i=8;x=6;y=1;type=false,rs[6][1]=9;
* i=9;x=6;y=1;type=false,rs[7][1]=10;
* i=10;x=
*/
}
return rs;
}
}