浙大JAVA实验题答案answer

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验8 Method的使用

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

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

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

n=in.nextInt();

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

s=0;

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

s+=1.0/fact(i);

}

}

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

static double fact(int n) {

int i;

double f=1;

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

f*=i;

return f;

}

}

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)

2 3 (a=2, n=3)

8 5 (a=8, n=5)

输出

246 (2+22+222)

98760 (8+88+888+8888+88888)

imponner;

public class Test50002{

public static void main(String args[]){

int ri, repeat;

int i, n,a;

long sn;

Scanner in=new Scanner(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);

}

}

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

static int fn(int a,int n){

int s=0;

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

s=s*10+a;

return s;

}

}

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)

public class Test50003{

public static void main(String args[]){

int ri, repeat;

int count;

long n;

Scanner in=new Scanner(System.in);

repeat=in.nextInt();

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

n=in.nextInt();

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

n=Math.abs(n);

count=countdigit(n,2);

}

}

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

static int countdigit(long number,int digit){

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

int a,c=0;

while(number>0){

a=(int)(number%10);

if(a==digit)c++;

number=number/10;

}

return c;

}

}

50004

输入一个正整数repeat (0

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

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

例:括号内是说明

输入

4 (repeat=4)

1 2 9 17

输出

NO (1不是素数)

YES (2是素数)

NO (9不是素数)

YES (17是素数)

public class Test50004{

public static void main(String args[]){

int ri, repeat,n;

boolean flag;

Scanner in=new Scanner(System.in);

repeat=in.nextInt();

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

n=in.nextInt();

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

flag=prime(n);

if(flag)

相关文档
最新文档