您的位置:首页 > 运维架构 > Shell

[创新杯]2010 年创新杯练习题 ,抽奖抽神马 ,附送一个小shell,呵呵

2011-05-21 17:19 441 查看
package attached;
import java.io.*;
import java.util.*;
/**
* 28.某企业为了促销,搞抽奖宣传活动,奖品为新款手机一部,抽奖规则如下:
(1)有n个盒子摆成一圈,盒子按顺时针方向依次编号为0,1,2,……,n-1。手机随机放在其中一个盒子中。(n为自然数)
(2)从0号盒子开始摸奖,顺时针方向计数,每遇到第m个盒子就摸奖一次。(m为自然数,m<n)
(3)直到重新摸到0号盒子为止。
例如n=5,m=3,那么摸奖经过的盒子编号依次为0,3,1,4,2,0。
请编写一个完整的程序,随机输入n,m(m<n),程序分析手机有没有不被抽中的机会?如果有,概率是多少? (概率=不被抽中的可能数/n)(30分)
@since 2010-9-30
@start 1:27
@end 1:57
* */
public class TwentyEight_Goodluck {
public static void main(String[] args){
while(true){
try{

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Input m :");

int m=Integer.parseInt(br.readLine());

System.out.println("Input n:");
int n=Integer.parseInt(br.readLine());
LuckyThread t=new LuckyThread(m,n);

t.start();

Thread.sleep(1000);

}
catch(Exception e){
System.out.println(e.getMessage());
}
}

}
}
class LuckyThread extends Thread{
int m,n;

LuckyThread(int m,int n){
this.m=m;
this.n=n;
}
public void run(){
Map visit=new HashMap();

List visited=new ArrayList();
List list=new ArrayList();

for(int i=0;i<n;i++){
list.add(i);
}
boolean flag=false;

for(int i=0;;i+=m){

int j=i%n;

if(flag){
if(j==0){

System.out.println("/r/n m="+m+"`n="+n+"`fail rate`"+(new Double((list.size()-visited.size()))/new Double(list.size())));
break;
}
else{
boolean mark=false;
for(int k=0;k<visited.size();k++){
if((((Integer)visited.get(k)).intValue())==(Integer)list.get(j)){
mark=true;
break;
}

}

if(!mark){
System.out.print(list.get(j)+"`");
visited.add(list.get(j));
}
}
}
else{
visited.add(list.get(j));

flag=true;
}

}

}
}


the litter folder shell

package attached;
import java.io.File;
public class Folder{
public static void main(String[] args){
String str=args[0];
String[] param=str.split(" ");

if(str.startsWith("add")){
File file=new File(param[1]+"/");
file.mkdirs();

System.out.println("build :`"+file.getAbsolutePath());
}
else
if(str.startsWith("del")){
File file=new File(param[1]+"/");

if(file.isDirectory()){
file.delete()	;
//file.deleteOnExit();
System.out.println("del:`"+file.getAbsolutePath());
//file=null;

}
}
else{
show(new File(param[0]),1);
}

}

public static void show(File file,int level){

if(file.isFile()){
for(int i=0;i<level;i++){
System.out.print(" ");
}
System.out.println("|-"+file.getName());
}
if(file.isDirectory()){
for(int i=0;i<level;i++){
System.out.print(" ");
}
System.out.print("-"+file.getName()+"/r/n");

for(File child:file.listFiles()){

show(child,level+1);

}

}

}
}


the shell tester

package attached;
import java.io.*;
/**
* 编写一个Java应用程序,文件名为Folder.java,编译后执行结果如下图所示,实现指定文件夹下目录和文件的文本形式的树状结构显示。要求:
a)输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状显示;
b)输入: java Folder C:/test>,显示C:/test文件夹下的目录和文件的文本形式树状显示;(C:/test可以为任意文件夹路径名)
c)输入: java Folder add aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;
d)输入: java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;
@since 2010-9-30
@start
@end 8:03
* */

public class TwentySeven_FileLister{
public static void main(String[] args){

Folder f=new Folder();
String[] param={"add aa"};

f.main(param);
String[] param2={"del aa"};

f.main(param2);

String[] param3={"src"};

f.main(param3);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: