【题目要求】
【题目分析】
球的个数为路径个数
槽子数=层数+1
给槽子从0开始编号,小球下落过程中走R的次数即为落到的槽子编号。如 RLRL,两次R,小球落到2号槽子。具体如下图所示:
【代码实现】
class Class32{
public static void main(String[] args){
//1.提示用户输入球的个数
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the number of balls to drop:");
int balls=scanner.nextInt();//路径的个数
//2.提示用户输入槽子的个数
System.out.print("Enter the number of slots in the bean machine:");
int slots=scanner.nextInt();//经过的层数(slots-1)
//3.模拟槽子创建的一个数组
int[] a=new int[slots];
//4.根据球的个数创建路径
for(int i=0;i<balls;i++){
String path="";
for(int j=0;j<slots-1;j++){
path+=Math.random()>0.5?"L":"R";
}
//System.out.println(path);
//LLRR
a[getLocation(path)]++;
}
//5.打印槽子当中球的情况
for(int i=0;i<a.length;i++){
System.out.print("slots"+i+":");
for(int j=0;j<a[i];j++){
System.out.print("O");
}
System.out.println();
}
}
public static int getLocation(String path){
int count=0;
for(int i=0;i<path.length();i++){
if(path.charAt(i)=='R'){
count++;
}
}
return count;
}
}