您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > java简明教程第三版-皮德常-答案
第2章习题4角谷猜想:任何一个正整数n,如果它是偶数则除以2,如果是奇数则乘以3加上1,这样得到一个新的整数,如继续进行上述处理,则最后得到的数一定是1。编写应用程序和小程序程序分别证明:所有的3至10000的数都符合上述规则。********************************************************************************************///程序清单/*方法1:采用小程序*/importjava.awt.*;importjava.util.*;importjava.applet.Applet;publicclassjiaoguextendsApplet{publicvoidpaint(Graphicsg){intx,n,i=10;for(x=3;x=10;x++){n=x;while(n!=1)if(n%2==0)n=n/2;elsen=n*3+1;g.drawString(x+符合角谷猜想!,25,25+i);i=i+15;}}}/**方法2:采用应用程序*/classjiaogu{publicstaticvoidmain(Stringargs[]){intx,n,i;for(x=3;x=1000;x++){n=x;while(n!=1)if(n%2==0)n=n/2;elsen=n*3+1;System.out.println(x+符合角谷猜想!);}}}/********************************************************************************************第2章习题5编写一个applet,要求输入2个整数,在状态条显示较大的数,紧跟着显示“islarger”。若二者相等,显示“thetwonumbersareequal!********************************************************************************************///程序清单/**large.java*/importjava.applet.*;importjava.awt.*;publicclasslargeextendsApplet{Labellab1,lab2;TextFieldinput1,input2;intone,two;publicvoidinit(){lab1=newLabel(输入第一个数);lab2=newLabel(输入第二个数);input1=newTextField(6);input2=newTextField(6);add(lab1);add(input1);add(lab2);add(input2);}publicbooleanaction(Evente,Objecto){intmax;if(e.target==input1||e.target==input2){one=Integer.parseInt(input1.getText());two=Integer.parseInt(input2.getText());if(one==two)showStatus(两个数相等!);else{max=(onetwo)?one:two;showStatus(max+较大!);}}returntrue;}}/********************************************************************************************第2章习题6编写一个程序模拟同时掷2个骰子。程序要用Math.random()模拟产生第一个骰子,然后再产生第二个骰子,将2个结果相加。和等于7的可能性最大,等于2和12的可能性最小。下图表示了出现36种情况组合。程序模拟掷3600次骰子,判断求和结果是否合理,共有6种情况的和是7,故在3600次掷骰子的结果中应当有1/6的可能性是7。123456123456723456783456789456789105678910116789101112********************************************************************************************///程序清单/**dice.java**模拟掷骰子*/publicclassdice{publicstaticvoidmain(String[]args){//Theratethatnumbersappeardoubleresult2;doubleresult7;doubleresult12;intn1,n2;intint1,int2;//Thetimesnumbersappearinttimes2=0;inttimes7=0;inttimes12=0;for(inti=0;i3600;i++){//generaterandomintn1=(int)(Math.random()*6+1);n2=(int)(Math.random()*6+1);if((n1+n2)==2)times2++;elseif((n1+n2)==7)times7++;elseif((n1+n2)==12)times12++;}result2=times2/3600.0;result7=times7/3600.0;result12=times12/3600.0;System.out.println(和为2的次数:+times2+占的比率:+result2);System.out.println(和为7的次数:+times7+占的比率:+result7);System.out.println(和为12的次数:+times12+占的比率:+result12);}}/********************************************************************************************第3章习题1编程:要求输入一个5位整数,将这个数分成独立的数字,并分开显示。例如输入32439则显示32439。********************************************************************************************///程序清单/**deduct.java*/importjava.applet.*;importjava.awt.*;publicclassdeductextendsApplet{Stringstr;TextFieldinput;LabelLinput;publicvoidinit(){Linput=newLabel(输入一个整数);input=newTextField(10);add(Linput);add(input);}publicbooleanaction(Evente,Objecto){if(e.target==input){str=input.getText();showStatus(这个数是:+str);}repaint();returntrue;}publicvoidpaint(Graphicsg){for(inti=0;istr.length();i++)g.drawString(str.charAt(i)+,50+i*10,50);}}/********************************************************************************************第3章习题2编程:计算从0到10的平方和立方值。并以如下格式显示:数平方立方0001112483927…………………………………101001000********************************************************************************************///程序清单/**num.java*/importjava.applet.*;importjava.awt.*;publicclassnumextendsApplet{publicvoidpaint(Graphicsg){g.drawString(数,20,15);g.drawString(平方值,80,15);g.drawString(立方值,140,15);for(inti=0;i=10;i++){g.drawString(+i,20,30+i*20);g.drawString(+i*i,80,30+i*20);g.drawString(+i*i*i,140,30+i*20);}}}//采用应用程序如下publicclassnum2{publicstaticvoidmain(String[]args){inti=0;intresult;System.out.println(数+平方+立方);for(;i=10;i++){result=i;System.out.print(i+);result=result*i;System.out.print(+result);result=result*i;System.out.print(+result);System.out.println();}}}/********************************************************************************************第3章习题3采用循环语句打印如下图形。**************************************************************************************************************************///程序清单/**graph1.java*/publicclassgraph1{//drawnstarsstaticvoidstar(intn){for(inti=1;i=n;i++){System.out.print(*);}}//drawnspacesstaticvoidspace(intn){for(inti=1;i=n;i++){System.out.print();}}publicstaticvoidmain(String[]args){//thelengthofspaceinti=20;//thelengthofstarintj=1;for(j=1;j=5;j++){star(j);space(i);star(j);i-=2;System.out.println();}}}/********************************************************************************************第3章习题4编程:读取一个矩形的边长,然后输出一个空心矩形。例如读入边长5,应当输出:************************************************************************************************************///程序清单/*采用小程序实现*graph2.java*/publicclassgraph2extendsApplet{intnum;TextFieldinput;LabelLinput;publicvoidinit(){Linput=newLabel(Enteraninteger:);input=newTextField(10);add(Linput);add(input);}publicboo
本文标题:java简明教程第三版-皮德常-答案
链接地址:https://www.777doc.com/doc-5263090 .html