看一下这几题如何解决?
1.编程题:设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序;要求用java实现
2.(1)根据用户输入的n(2 <n <8)个整数,列出所有不重复的排列组合.(注用户输入的数据可能有重复,忽略用户输入的重复数据)
(2)根据用户输入的n(2 <n <8)个整数,列出所有不重复的数据组合.(注用户输入的数据可能有重复,忽略用户输入的重复数据)
(3)已知第一题的输出数据.求用户输入的数据(排除重复).
(4)选用前序,中序,后序实现一个二叉树遍历.
3.随机产生20个三位数如A1A2A3 ( 0 <= A1 <=9, 0 <= A2 <=9,0 <= A3 <=9),其中A1,A2,A3的数据分布是随机的,也是等概率的(即A1,A2,A3为0~9的机会相等)。因此这个三位数的奇偶分布,素合分布,A1+A2+A3之和分布,Max(A1,A2,A3)- Min(A1,A2,A3)之差分布,A1,A2,A3除以3余数分布等应该满足一定的规律。用Java编程实现:
1.随机产生20个这样的三位数
2.将这20个数字排序(增序)
3.分析产生的20个三位数的上述5个分布的数据。
4.找出理论上上述5个分布的规律数据
5.根据分析得到的数据,根据得到的数据和规律的吻合性,预测随机产生的第21个三位数子集(可能性为1000个,000~999),要求预测产生的子集S, |S| <=300个(即这个子集的数目小于等于300个)。
------解决方案--------------------第一题==> 递归
后面的都不会
------解决方案--------------------这是第一题的答案
package n120_RandomFileTest;
/**
* @author Administrator
* @060812
*/
import java.io.*;//import DataOutput,Datainput interface and
IOException,
//DataOutputStream,FileOutputStream,RandomAccessFile class.
import java.util.*;
public class n120_RandomFileTest {
public static void main(String[] args){
int n = 12;
int m = 7;
ArrayList ls = new ArrayList();
for(int i=1;i <=n;i++){
ls.add(i);
}
n120_RandomFileTest obj = new n120_RandomFileTest();
obj.PrintList(ls,m);
}
public void PrintList(ArrayList ls,int m){
int i=0;
while(!ls.isEmpty()){
for(int j=1;j <m;j++){
i++;
if(i> =ls.size()) i = 0;
}
System.out.println( " "+ls.get(i) + "\r\n ");
ls.remove(i);
i = i-1;
}
}
}