浙大JAVA-实验题答案09answer_第1页
浙大JAVA-实验题答案09answer_第2页
浙大JAVA-实验题答案09answer_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验91 Method的使用(二)1.程序填空题,不要改变与输入输出有关的语句。50010十进制转换二进制输入一个正整数repeat (0repeat10),做repeat次下列运算:输入1个正整数n,将其转换为二进制后输出。要求定义并调用函数dectobin(n),它的功能是输出n的二进制。例如,调用dectobin(lO),输出 1010o输出语句:System, out. print (t);/t为某位二进制数例:括号是说明输入:3(repeat二3)151000输出:111111001000import java .util. Scanner;public class Test5001

2、0public static void main(String args)int ri,repeat;int i, n;Scanner in=new Scanner(System. in);repeat=in. nextlnt();for(ri=l:ri0);System, out .print (t) ; /本方法无返回值,需要在方法体中输出结果说明:本题中方法dectobin(n)的输出虽然与要求有所出入,但上传是正确的。以下用递归算法实现方法的设计:50001 求 1 + 1/2! +.+ 1/n!输入一个正整数repeat (0repeat10),做repeat次下列运算:输入1个正整

3、数n,计算s的前n项的和(保留4位小数)。 s = 1 + 1/2! +.+ 1/n!要求定义并调用函数fact (n)计算n的阶乘。例:括号是说明输入:2 (repeat二2)2(n 二 2)10(n 二 10)输出:1.51.7183import java .util. Scanner;public class Test50001 public static void main(String args) int ri,repeat;int i, n;double s;Scanner in=new Scanner(System. in);repeat=in. nextlnt ();for (

4、ri=l;ri:*/s=0;for(i=l;i=n;i+)s+=l.0/fact();System, out. println(long) (s*10000+0. 5)/10000.);/ */static double fact (int n) /递归方法 if(n=l)return 1;else return fact(n-1);50002 求 a+aa+aaa+aaeeea输入一个正整数repeat (0repeat10),做repeat次下列运算:输入2个正整数&和n,求a+aa+aaa+aaeea(n个a)之和。要求定义并调用函数fn(a, n),它的功能是返回aa-a(n个a)。例

5、如,fn(3, 2)的返回值是33。 例:括号是说明输入2 (repeat二2)2 3 (a=2, n=3)8 5 (a二& n二5)输出246(2+22+222)98760 (8+88+888+8888+88888)import java .util. Scanner:public class Test50002public static void main(String args)int ri, repeat;int i, n, a;long sn;Scanner in=new Scanner(System. in);repeat二in. nextlnt();for (ri=l; ri=r

6、epeat; ri+)&二in. nextlnt ();n=in nextlnt ();sn=0;for(i=l;i=n;i+) sn+=fn(az i);System out printIn(sn); /*/static int fn (int a, int n) /递归方法if (n=l)return a; else return fn(a,n-l)*10+a;50006 输出 Fibonacci 序列输入一个正整数repeat (0repeat10),做repeat次下列运算:输入2个正整数m和n(l二m, n二10000),输出m和n之间所有的Fibonacci数。Fibonacci

7、序列(第 1 项起):1123581321 要求定义并调用函数f让(n),它的功能是返回第n项Fibonacci数。例如,fib(7)的返回值是13。 输出语句:System, out. print (f+);例:括号是说明输入:3 (repeat二3)1 10(m=l, n=10)20 100(m=20, n=100)输出:1 1 2 3 5 821 34 55 891597 2584 41811000 6000 (m二1000, n二6000)(1到10之间的Fibonacci数)(20 到 100 之间的 Fibonacci 数)(1000 到 6000 之间的 Fibonacci 数)

8、import java .util. Scanner:public class Test50006public static void main(String args) int ri,repeat;int i, m, n;long f;Scanner in=new Scanner(System. in);repeat二in. nextlnt();for (ri=l; ri=repeat; ri+)m=in nextint ();n二in. nextint ();/*/i=l;f=l;while(f=m) Systemout.printn); i+;f=rib(i);System. out.

9、println();/*/static long fib (int n) /递归方法 if(n=l|n=2) return 1;else return fib(n-l) +fiJb(n-2);实验92 维数组的使用1.求平均值输入一个正整数repeat (0repeat10),做repeat次下列运算: 输入一个正整数n (lnW10),再输入n个整数,输出平均值。例:括号是说明输入2 (repeat二2)3 12-65 12 2 5 4 0输出aver=一1. 0aver=4. 6import java .util.Scanner;public class Test60001public s

10、tatic void main(String args)int ri, repeat;int i, n, sum, a;float aver;Scanner in二new Scanner(System. in);repeat=in. nextlnt ();for (ri=l; ri=repeat; ri+)n=in. nextlnt ();a=new intn;for(i=0; in; i+)ai=in. nextlntO; 这个循环输入数组各元素 /*/sum=0;for(i=0; in; i+) 这个循环实现累加 sum+=ai;aver= (float) sum/n; 求平均值,注意要先

11、把sum转换成float,再计算System. out print In (/zaver=,/+aver);2.求最大值及其下标输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个正整数n(lnW10),再输入n个整数,输出最大值极其下标(设最大值惟一,下标从0开始)。例:括号是说明 输入3(repeat二3)3 16 43 10 8 1(最大值6的下标是1)(最大值10的下标是0)(最大值5的下标是2)5 1 2 5 4 0 输出max=6, index=l max二10, index二0 max=5, index=2 import java .util.

12、Scanner:public class Test60002public static void main(String args) int ri, repeat;int i, index, n, a;Scanner in=new Scanner(System. in); repeat=in. nextlnt ();for (ri=l; ri=repeat; ri+) rFin. nextlnt (); a二new intn;for(i=0; in; i+)ai二in. nextlnt ();index=0; 用index保存最大数的下标,开始假设a0是最大数 for(i=l; in; i+)

13、if(aindexai) index=i;/ai与当前最大数a index比较,若&i更大,index变为iSyste m. out print In (z,max=/z+a index +z,, index 二+index);3. 逆序输出输入一个正整数repeat (0repeat10),做repeat次下列运算: 输入一个正整数n (15W10),再输入n个整数,按逆序输出这些数。例:括号是说明输入2(repeat二2)4 10 8 1 25 1 2 5 4 0输出2 1 8 100 4 5 2 1 import javautilScanner: public class Test600

14、03public static void main(String args) int ri, repeat;int i, n, temp, a;Scanner in二new Scanner (Systemin); repeat=in. nextlnt ();for (ri=l; ri=repeat; ri+) rFin. nextlnt (); a=new intn;for(i=0; in; i+) ai二in. nextint ();for(i=0; in/2; i+) /ai与 anT-i交换,注意交换次数 temp=ai;ai=an-l-i; an-l-i= temp;for(i=0;

15、in; i+)/输出一个数组 System. out. print (ai+/z “);System. out. printlnO ;4. 交换最小值和最大值输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个正整数m再输入n个整数,将最小值与笫一个数交换,最大值与最后一个数交换,然后输岀 交换后的n个数。例:括号是说明 输入3 (repeat=3)54351241567554321输出13245156714325import java .util. Scanner:public class Test60004public static void main(String Jargs)int ri, repeat;int i, index, n, t, a;Scanner in=new Scanner (Systemin);repeat=in. nextint ();for (ri=l; ri=repeat; ri+) n=in nextlnt (); a=new intn;for(i=0; in; i+) ai二in. nextint ();/*/index=0; 找最小数,与第一个数交换 for(i=0; ia

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论