帮忙做两道Java题

问题描述

5、某企业为了促销,搞抽奖宣传活动,奖品为新款手机一部,抽奖规则如下:(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)6、采用UDP协议,编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。客户端指定一个服务器上的文件名,让服务器发回该文件的内容,或者提示文件不存在。(服务端程序和客户端程序分别命名为Server.java和Client.java)

解决方案

解决方案二:
标记一下,等待高手
解决方案三:
服了!
解决方案四:
也许高手还可以吧
解决方案五:
等高手。。
解决方案六:
/*5、某企业为了促销,搞抽奖宣传活动,奖品为新款手机一部,抽奖规则如下:(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分)*/importjava.util.Iterator;importjava.util.Scanner;classCircle{privateEntryheader=null;privateintsize=0;publicCircle(intcapacity){for(inti=0;i<capacity;++i)add();}privatevoidadd(){EntrynewEntry=newEntry(size++);if(header==null){header=newEntry;header.previous=header.next=header;}else{header.previous.next=newEntry;newEntry.previous=header.previous;header.previous=newEntry;newEntry.next=header;}}publicintsize(){returnsize;}publicIterator<Integer>circleIterator(){returnnewCircleIterator(header);}privateclassCircleIteratorimplementsIterator<Integer>{privateEntrycurrent;CircleIterator(Entrystart){current=start;}publicbooleanhasNext(){returncurrent!=null;}publicIntegernext(){if(hasNext()){intlabel=current.label;current=current.next;returnlabel;}returnnull;}publicvoidremove(){if(current!=null){Entrye=current.previous;if(e==header)header=e.next;e.next.previous=e.previous;e.previous.next=e.next;--size;}}}privatestaticclassEntry{intlabel;Entryprevious,next;Entry(intlabel){this.label=label;}}}publicclassTestQiye{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.println("entermandn");intn=Integer.parseInt(scanner.next()),m=Integer.parseInt(scanner.next());intcount=0;Circlecircle=newCircle(n);Iterator<Integer>iterator=circle.circleIterator();iterator.next();do{for(inti=1;i<m;++i)iterator.next();++count;}while(iterator.next().intValue()!=0);System.out.println(((double)(n-count))/n);}}
解决方案七:
先收藏了
解决方案八:
importjava.util.*;importjava.io.*;publicclassLinkedListTest{privatestaticLinkedList<Integer>list=newLinkedList<Integer>();publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intn=-1;intm=-1;try{n=sc.nextInt();m=sc.nextInt();System.out.println("n没摸到奖的概率是:"+circle(n,m));}catch(Exceptione){System.out.println("请输入两个整数");}}publicstaticdoublecircle(intn,intm){intcount=0;doubleresult=0;for(inti=0;i<n;i++){list.add(i);}Object[]box;box=list.toArray();inttmp=-1;intk=0;System.out.print(0+",");while(tmp!=0){k+=m;if(k>=box.length){k-=box.length;}tmp=(Integer)box[k];System.out.print(tmp+",");count++;}result=(double)(n-count)/n;returnresult;}}

时间: 2024-09-23 12:15:09

帮忙做两道Java题的相关文章

求帮忙做,用Java做银行小程序

问题描述 我明天急需一个用到类,继承做的银行存储程序.有的功能是存款.取款.查询和退出.针对vip用户还要有透支功能.我学的不好,哪位高人能帮忙做一下!! 解决方案 解决方案二:给钱么????解决方案三:--多钱啊?我这个只是学校要的测试,又不是商业用的...

关于有序二维矩阵查找和字符串替换的两道算法题

最近看一本书上写到的两个面试题 于是实现了一下 感觉思路很好,大牛略过 : 1.对于一个二维矩阵,从左到右  从上到下 都是递增的,如何判断一个值是否在矩阵内部?(C实现  实现复杂度 O(n)) bool FindInTwoDimensionalMatrix(int*pMatrix,int iRows,int iCols,int iFindVal) { bool bFind=false ; if(pMatrix==0||iRows<=0||iCols<=0) return bFind ; i

c语言-两道C语言编程题:求教各位大神

问题描述 两道C语言编程题:求教各位大神 两元一瓶啤酒,两个啤酒瓶换一瓶啤酒,四个啤酒瓶盖换一瓶啤酒,输入的金额可以买几瓶. 输入一串字符串,写两个函数,第一个函数使输入的字符串全都后移一位,第二个函数将字符串中的字母大写换小写,小写换大写?. 拜托各位了 谢谢~ 解决方案 第一个问题描述不清,不知道是不是可以借啤酒瓶和瓶盖,我的程序按照不可以编写: #include <stdio.h>int foo(int money){ int c = money / 2; int c1 = 0; int

大小写-java题,大神帮忙给个思路

问题描述 java题,大神帮忙给个思路 请用java描述一种算法,可以判断两个类型为String的英文意思相同,其中意思相同的主要含义是: 1,与大小写无关! 2,与句中标点符号无关 3,句子中多个空格和单个空格等价 解决方案 你先用String.trim();去掉空格,然后用replace("标点符号","");去掉标点符号,最后用string.equals(string); 应该可以吧. 解决方案二: 都是调用String对象的api,一种是上面说的,但最后的比

ynamic ata isplay-求帮忙 DynamicDataDisplay如何做两条和y轴平行的直线,并且可以取点上的值

问题描述 求帮忙 DynamicDataDisplay如何做两条和y轴平行的直线,并且可以取点上的值 DynamicDataDisplay如何做两条和y轴平行的直线,并且可以取点上的值

求助两道关于c++循环的小编程题!

问题描述 求助两道关于c++循环的小编程题! 1.输入12个正整数,在去掉一个最小值和一个最大值后,求剩余10个正整数之和. 2.输入一个整数X(1<X<10),在屏幕上显示数字三角形.例如,X=5,显示: 1 121 12321 1234321 123454321 解决方案 1.简单的累加,记录最大最小值,然后减一下就可以了 #include "iostream" using namespace std; int main() { int max,min,sum=0,in

c++ 课设 c++编程问题-C++编程题 用类做两个坐标,求两点之间的距离

问题描述 C++编程题 用类做两个坐标,求两点之间的距离 用类做两个坐标,求两点之间距离 C++编程题明天上课就要交了,不交就得挂科,求尽快给以正解,在下感激不进 解决方案 http://codepad.org/zqnz4GTt #include <math.h> #include <iostream.h> using namespace std; class Point { public: int x; public: int y; public: double distance

设计-求Java大神,帮忙做一个点餐系统,求java源代码

问题描述 求Java大神,帮忙做一个点餐系统,求java源代码 设计实现一个餐厅点餐系统,实现电子点餐,求java源代码 详细内容如图 流程图大概做了一个

挑战4道Java试题_java

四道Java基础题,你能对几道? 一.==符的使用首先看一段比较有意思的代码 Integer a = 1000,b=1000; Integer c = 100,d=100; public void mRun(final String name){ new Runnable() { public void run() { System.out.println(name); } }; } System.out.println(a==b); System.out.println(c==d); 如果这道