日期:2014-05-20  浏览次数:20709 次

看一下这几题如何解决?
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;

}

}
}