欢迎来到天天文库
浏览记录
ID:56778482
大小:52.50 KB
页数:8页
时间:2020-07-09
《浙大JAVA 实验题答案09answer.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验9-1Method的使用(二)1.程序填空题,不要改变与输入输出有关的语句。50010十进制转换二进制输入一个正整数repeat(02、r;publicclassTest50010{publicstaticvoidmain(Stringargs[]){intri,repeat;inti,n;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();/*---------*/dectobin(n);System.out.println();}}/*---------*/staticvoiddectobin(intn){Stringt="";//保存二3、进制数do{t=n%2+t;//n除2后的余数拼接到t的前面n=n/2;//获得除2后的商}while(n>0);System.out.print(t);//本方法无返回值,需要在方法体中输出结果}}说明:本题中方法dectobin(n)的输出虽然与要求有所出入,但上传是正确的。以下用递归算法实现方法的设计:50001求1+1/2!+....+1/n!输入一个正整数repeat(04、ct(n)计算n的阶乘。例:括号内是说明输入:2(repeat=2)2(n=2)10(n=10)输出:1.51.7183importjava.util.Scanner;publicclassTest50001{publicstaticvoidmain(String[]args){intri,repeat;inti,n;doubles;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();/*----------5、-*/s=0;for(i=1;i<=n;i++)s+=1.0/fact(i);System.out.println((long)(s*10000+0.5)/10000.);}}/*---------------*/staticdoublefact(intn){//递归方法if(n==1)return1;elsereturnn*fact(n-1);}}50002求a+aa+aaa+aa…a输入一个正整数repeat(06、调用函数fn(a,n),它的功能是返回aa…a(n个a)。例如,fn(3,2)的返回值是33。例:括号内是说明输入2(repeat=2)23(a=2,n=3)85(a=8,n=5)输出246(2+22+222)98760(8+88+888+8888+88888)importjava.util.Scanner;publicclassTest50002{publicstaticvoidmain(Stringargs[]){intri,repeat;inti,n,a;longsn;Scannerin=newScanner(System.in);r7、epeat=in.nextInt();for(ri=1;ri<=repeat;ri++){a=in.nextInt();n=in.nextInt();/*------------*/sn=0;for(i=1;i<=n;i++)sn+=fn(a,i);System.out.println(sn);}}/*------------*/staticintfn(inta,intn){//递归方法if(n==1)returna;elsereturnfn(a,n-1)*10+a;}}50006输出Fibonacci序列输入一个正整数repeat(08、epeat<10),做repeat次下列运算:输入2个正整数m和n(1<=m,n<=10000),输出m和n之间所有的Fibonacci数。Fibonacci序列(第1项起):1
2、r;publicclassTest50010{publicstaticvoidmain(Stringargs[]){intri,repeat;inti,n;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();/*---------*/dectobin(n);System.out.println();}}/*---------*/staticvoiddectobin(intn){Stringt="";//保存二
3、进制数do{t=n%2+t;//n除2后的余数拼接到t的前面n=n/2;//获得除2后的商}while(n>0);System.out.print(t);//本方法无返回值,需要在方法体中输出结果}}说明:本题中方法dectobin(n)的输出虽然与要求有所出入,但上传是正确的。以下用递归算法实现方法的设计:50001求1+1/2!+....+1/n!输入一个正整数repeat(04、ct(n)计算n的阶乘。例:括号内是说明输入:2(repeat=2)2(n=2)10(n=10)输出:1.51.7183importjava.util.Scanner;publicclassTest50001{publicstaticvoidmain(String[]args){intri,repeat;inti,n;doubles;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();/*----------5、-*/s=0;for(i=1;i<=n;i++)s+=1.0/fact(i);System.out.println((long)(s*10000+0.5)/10000.);}}/*---------------*/staticdoublefact(intn){//递归方法if(n==1)return1;elsereturnn*fact(n-1);}}50002求a+aa+aaa+aa…a输入一个正整数repeat(06、调用函数fn(a,n),它的功能是返回aa…a(n个a)。例如,fn(3,2)的返回值是33。例:括号内是说明输入2(repeat=2)23(a=2,n=3)85(a=8,n=5)输出246(2+22+222)98760(8+88+888+8888+88888)importjava.util.Scanner;publicclassTest50002{publicstaticvoidmain(Stringargs[]){intri,repeat;inti,n,a;longsn;Scannerin=newScanner(System.in);r7、epeat=in.nextInt();for(ri=1;ri<=repeat;ri++){a=in.nextInt();n=in.nextInt();/*------------*/sn=0;for(i=1;i<=n;i++)sn+=fn(a,i);System.out.println(sn);}}/*------------*/staticintfn(inta,intn){//递归方法if(n==1)returna;elsereturnfn(a,n-1)*10+a;}}50006输出Fibonacci序列输入一个正整数repeat(08、epeat<10),做repeat次下列运算:输入2个正整数m和n(1<=m,n<=10000),输出m和n之间所有的Fibonacci数。Fibonacci序列(第1项起):1
4、ct(n)计算n的阶乘。例:括号内是说明输入:2(repeat=2)2(n=2)10(n=10)输出:1.51.7183importjava.util.Scanner;publicclassTest50001{publicstaticvoidmain(String[]args){intri,repeat;inti,n;doubles;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri<=repeat;ri++){n=in.nextInt();/*----------
5、-*/s=0;for(i=1;i<=n;i++)s+=1.0/fact(i);System.out.println((long)(s*10000+0.5)/10000.);}}/*---------------*/staticdoublefact(intn){//递归方法if(n==1)return1;elsereturnn*fact(n-1);}}50002求a+aa+aaa+aa…a输入一个正整数repeat(06、调用函数fn(a,n),它的功能是返回aa…a(n个a)。例如,fn(3,2)的返回值是33。例:括号内是说明输入2(repeat=2)23(a=2,n=3)85(a=8,n=5)输出246(2+22+222)98760(8+88+888+8888+88888)importjava.util.Scanner;publicclassTest50002{publicstaticvoidmain(Stringargs[]){intri,repeat;inti,n,a;longsn;Scannerin=newScanner(System.in);r7、epeat=in.nextInt();for(ri=1;ri<=repeat;ri++){a=in.nextInt();n=in.nextInt();/*------------*/sn=0;for(i=1;i<=n;i++)sn+=fn(a,i);System.out.println(sn);}}/*------------*/staticintfn(inta,intn){//递归方法if(n==1)returna;elsereturnfn(a,n-1)*10+a;}}50006输出Fibonacci序列输入一个正整数repeat(08、epeat<10),做repeat次下列运算:输入2个正整数m和n(1<=m,n<=10000),输出m和n之间所有的Fibonacci数。Fibonacci序列(第1项起):1
6、调用函数fn(a,n),它的功能是返回aa…a(n个a)。例如,fn(3,2)的返回值是33。例:括号内是说明输入2(repeat=2)23(a=2,n=3)85(a=8,n=5)输出246(2+22+222)98760(8+88+888+8888+88888)importjava.util.Scanner;publicclassTest50002{publicstaticvoidmain(Stringargs[]){intri,repeat;inti,n,a;longsn;Scannerin=newScanner(System.in);r
7、epeat=in.nextInt();for(ri=1;ri<=repeat;ri++){a=in.nextInt();n=in.nextInt();/*------------*/sn=0;for(i=1;i<=n;i++)sn+=fn(a,i);System.out.println(sn);}}/*------------*/staticintfn(inta,intn){//递归方法if(n==1)returna;elsereturnfn(a,n-1)*10+a;}}50006输出Fibonacci序列输入一个正整数repeat(08、epeat<10),做repeat次下列运算:输入2个正整数m和n(1<=m,n<=10000),输出m和n之间所有的Fibonacci数。Fibonacci序列(第1项起):1
8、epeat<10),做repeat次下列运算:输入2个正整数m和n(1<=m,n<=10000),输出m和n之间所有的Fibonacci数。Fibonacci序列(第1项起):1
此文档下载收益归作者所有