[创新杯]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); } }
相关文章推荐
- 简易的shell ---- MOS 的一个小练习题
- shell 练习题02 一个文件里将内容三行显示为一行
- 使用Jailkit在CentOS上建立一个受限shell
- 手把手教你编写一个具有基本功能的shell(已开源)
- 如何实现一个抽奖的算法
- 如何实现shell并发 一个入门级可控多线程shell脚本方案
- Linux练习题-shell脚本编程基础篇(再次施工中)
- 【一天一个shell命令】文本内容操作系列-sed补充
- 《Java examples in a nutshell》书中一个关于列出某一目录下的所有目录与文件的程序源代码
- shell脚本只运行一个实例
- shell脚本中case条件控制语句的一个bug分析
- Shell:重复执行一个命令n次
- 用shell 实现自动ftp的一个实例
- shell遍历一个日期范围
- 一个备份MySQL数据库的简单Shell脚本
- shell 脚本中将输出内容赋值给一个变量时的换行问题
- 呵呵,找到一个学习的好地方
- shell脚本获取一个固定日期的前n天,后n天,前n个月,后n个月的语法
- 一天一个shell实例(2)生成随机数(转)
- Linux下实现一个简单进度条和shell脚本实现彩色进度条