浙大JAVA实验题答案answer.docx

上传人:b****8 文档编号:10361537 上传时间:2023-02-10 格式:DOCX 页数:17 大小:17.46KB
下载 相关 举报
浙大JAVA实验题答案answer.docx_第1页
第1页 / 共17页
浙大JAVA实验题答案answer.docx_第2页
第2页 / 共17页
浙大JAVA实验题答案answer.docx_第3页
第3页 / 共17页
浙大JAVA实验题答案answer.docx_第4页
第4页 / 共17页
浙大JAVA实验题答案answer.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

浙大JAVA实验题答案answer.docx

《浙大JAVA实验题答案answer.docx》由会员分享,可在线阅读,更多相关《浙大JAVA实验题答案answer.docx(17页珍藏版)》请在冰豆网上搜索。

浙大JAVA实验题答案answer.docx

浙大JAVA实验题答案answer

CKBOODwasrevisedintheearlymorningofDecember17,2020.

 

浙大JAVA实验题答案answer

实验8Method的使用

1.程序填空题,不要改变与输入输出有关的语句。

50001

输入一个正整数repeat(0

输入1个正整数n,计算s的前n项的和(保留4位小数)。

s=1+1/2!

+....+1/n!

要求定义并调用函数fact(n)计算n的阶乘。

例:

括号内是说明

输入:

2(repeat=2)

2(n=2)

10(n=10)

输出:

1.5

1.7183

importjava.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();

/*-----------*/

s=0;

for(i=1;i<=n;i++)

s+=1.0/fact(i);

System.out.println((long)(s*10000+0.5)/10000.);

}

}

/*---------------*/

staticdoublefact(intn){

inti;

doublef=1;

for(i=1;i<=n;i++)

f*=i;

returnf;

}

}

50002

输入一个正整数repeat(0

输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。

要求定义并调用函数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);

repeat=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){

ints=0;

for(inti=1;i<=n;i++)

s=s*10+a;

returns;

}

}

50003

输入一个正整数repeat(0

读入1个整数,统计并输出该数中2的个数。

要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。

例如,countdigit(10090,0)的返回值是3。

例:

括号内是说明

输入:

3(repeat=3)

-21902

2

345543

输出:

count=2(-21902中有2个2)

count=1(有1个2)

count=0(345543中没有2)

importjava.util.Scanner;

publicclassTest50003{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

intcount;

longn;

Scannerin=newScanner(System.in);

repeat=in.nextInt();

for(ri=1;ri<=repeat;ri++){

n=in.nextInt();

/*---------*/

n=Math.abs(n);

count=countdigit(n,2);

System.out.println("count="+count);

}

}

/*------------*/

staticintcountdigit(longnumber,intdigit){

//统计整数number中数字digit的个数

inta,c=0;

while(number>0){

a=(int)(number%10);

if(a==digit)c++;

number=number/10;

}

returnc;

}

}

50004

输入一个正整数repeat(0

输入一个正整数n,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

要求定义并调用函数prime(m)判断m是否为素数。

例:

括号内是说明

输入

4(repeat=4)

12917

输出

NO(1不是素数)

YES(2是素数)

NO(9不是素数)

YES(17是素数)

importjava.util.Scanner;

publicclassTest50004{

publicstaticvoidmain(Stringargs[]){

intri,repeat,n;

booleanflag;

Scannerin=newScanner(System.in);

repeat=in.nextInt();

for(ri=1;ri<=repeat;ri++){

n=in.nextInt();

/*---------*/

flag=prime(n);

if(flag)System.out.println("YES");

elseSystem.out.println("NO");

}

}

/*------------*/

staticbooleanprime(intm){

booleanflag=true;

if(m==1)flag=false;

for(inti=2;i<=m-1;i++)

if(m%i==0)

{flag=false;break;}

returnflag;

}

}

50005

输入一个正整数repeat(0

输入2个正整数m和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

要求定义并调用函数prime(m)判断m是否为素数。

例:

括号内是说明

输入:

3(repeat=3)

110(m=1,n=10)

2035(m=20,n=35)

1416(m=14,n=16)

输出:

count=4,sum=17(1到10之间有4个素数:

2,3,5,7)

count=3,sum=83(20到35之间有3个素数:

23,29,31)

count=0,sum=0(14到16之间没有素数)

importjava.util.Scanner;

publicclassTest50005{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

intcount,i,m,n,sum;

Scannerin=newScanner(System.in);

repeat=in.nextInt();

for(ri=1;ri<=repeat;ri++){

m=in.nextInt();

n=in.nextInt();

/*---------*/

count=0;

sum=0;

for(i=m;i<=n;i++)

if(prime(i)){count++;sum+=i;}

System.out.println("count="+count+",sum="+sum);

}

}

/*------------*/

staticbooleanprime(intm){

booleanflag=true;

if(m==1)flag=false;

for(inti=2;i<=m-1;i++)

if(m%i==0)

{flag=false;break;}

returnflag;

}

}

50006

输入一个正整数repeat(0

输入2个正整数m和n(1<=m,n<=10000),输出m和n之间所有的Fibonacci数。

Fibonacci序列(第1项起):

1123581321......

要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。

例如,fib(7)的返回值是13。

输出语句:

System.out.print(f+"");

例:

括号内是说明

输入:

3(repeat=3)

110(m=1,n=10)

20100(m=20,n=100)

10006000(m=1000,n=6000)

输出:

112358(1到10之间的Fibonacci数)

21345589(20到100之间的Fibonacci数)

159725844181(1000到6000之间的Fibonacci数)

importjava.util.Scanner;

publicclassTest50006{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

inti,m,n;

longf;

Scannerin=newScanner(System.in);

repeat=in.nextInt();

for(ri=1;ri<=repeat;ri++){

m=in.nextInt();

n=in.nextInt();

/*---------*/

i=1;

f=1;

while(f<=n){

if(f>=m)System.out.print(f+"");

i++;

f=fib(i);

}

System.out.println();

}

}

/*------------*/

staticlongfib(intn){//返回第n项Fibonacci数

inti;

longa=1,b=1,f=1;

for(i=3;i<=n;i++){//从第3项开始计算

f=a+b;

a=b;

b=f;

}

returnf;

}

}

50007

输入一个正整数repeat(0

输入2个正整数m和n(1<=m,n<=10000),输出m到n之间的所有完数(完数就是因子和与它本身相等的数)。

要求定义并调用函数factorsum(number),它的功能是返回number的因子和。

例如,factorsum(12)的返回值是16(1+2+3+4+6)。

输出语句:

System.out.print(i+"");

例:

括号内是说明

输入:

2(repeat=2)

20500(m=100,n=400)

1100(m=1,n=100)

输出:

28496

1628

importjava.util.Scanner;

publicclassTest50007{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

inti,m,n;

Scannerin=newScanner(System.in);

repeat=in.nextInt();

for(ri=1;ri<=repeat;ri++){

m=in.nextInt();

n=in.nextInt();

/*---------*/

for(i=m;i<=n;i++)

if(i==factorsum(i))

System.out.print(i+"");

System.out.println();

}

}

/*---------*/

staticintfactorsum(intnumber){//返回number的因子和

intsum=0;

if(number==1)sum=1;

for(inti=1;i<=number-1;i++)

if(number%i==0)sum+=i;

returnsum;

}

}

50008

输入一个正整数repeat(0

输入2个正整数m和n(1<=m,n<=1000),输出m到n之间的所有满足各位数字的立方和等于它本身的数。

要求定义并调用函数is(number)判断number的各位数字之立方和是否等于它本身。

输出语句:

System.out.print(i+"");

例:

括号内是说明

输入:

2(repeat=2)

100400(m=100,n=400)

1100(m=1,n=100)

输出:

153370371(1*1*1+5*5*5+3*3*3=153;3*3*3+7*7*7=370;3*3*3+7*7*7+1*1*1=371)

1

importjava.util.Scanner;

publicclassTest50008{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

inti,m,n;

Scannerin=newScanner(System.in);

repeat=in.nextInt();

for(ri=1;ri<=repeat;ri++){

m=in.nextInt();

n=in.nextInt();

/*---------*/

for(i=m;i<=n;i++)

if(is(i))System.out.print(i+"");

System.out.println();

}

}

/*---------*/

//判断number的各位数字之立方和是否等于它本身

staticbooleanis(intnumber){

intsum=0,n,digit;

n=number;

while(n>0){

digit=n%10;

n=n/10;

sum+=digit*digit*digit;

}

if(number==sum)returntrue;

elsereturnfalse;

}

}

50009

输入一个正整数repeat(0

输入一个整数,将它逆序输出。

要求定义并调用函数reverse(number),它的功能是返回number的逆序数。

例如reverse(12345)的返回值是54321。

例:

括号内是说明

输入

4(repeat=4)

123456-100-299

输出

654321

-1

-2

99

importjava.util.Scanner;

publicclassTest50009{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

longn,res;

Scannerin=newScanner(System.in);

repeat=in.nextInt();

for(ri=1;ri<=repeat;ri++){

n=in.nextInt();

/*---------*/

res=reverse(n);

System.out.println(res);

}

}

/*---------*/

staticlongreverse(longnumber){//返回number的逆序数

intflag=1;

longa=0,digit;

if(number<0){

flag=-1;

number=-number;

}

while(number>0){

digit=number%10;//分离出个位数字

a=a*10+digit;//形成当前的逆序数

number=number/10;

}

returnflag*a;

}

}

50011

输入一个正整数repeat(0

输入三个整数a、b和c,输出其中较大的数。

要求定义和调用函数max(a,b,c)找出a、b中较大的数,函数形参a、b和c的类型是int。

输入输出示例:

括号内是说明

输入

3(repeat=3)

输入:

589(a=5,b=8)

-1-10-5(a=-1,b=-10)

111(a=1,b=1)

输出:

max(5,8,9)=9

max(-1,-10,-5)=-1

max(1,1,1)=1

importjava.util.Scanner;

publicclassTest50011{

publicstaticvoidmain(Stringargs[]){

intri,repeat;

inta,b,c,maximun;

Scannerin=newScanner(System.in);

repeat=in.nextInt();

for(ri=1;ri<=repeat;ri++){

a=in.nextInt();

b=in.nextInt();

c=in.nextInt();

/*-----------------*/

maximun=maximun(a,b,c);

System.out.println("max("+a+","+b+","+c+")="+maximun);

}

}

/*-------------------*/

staticintmaximun(inta,intb,intc){

intmax=a;

if(max

if(max

returnmax;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1