浙大java 实验题答案0answer 下载本文

内容发布更新时间 : 2024/5/5 0:08:57星期一 下面是文章的全部内容请认真阅读。

实验8 Method的使用

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

50001

输入一个正整数repeat (0

要求定义并调用函数fact(n)计算n的阶乘。 例:括号内是说明 输入:

2 (repeat=2) 2 (n=2) 10 (n=10) 输出: 1.5 1.7183

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

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

要求定义并调用函数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); if(a==digit)c++; number=number/10; }

return c; } }

50004

输入一个正整数repeat (0

输入一个正整数n,如果它是素数,输出\,否则,输出\(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。 例:括号内是说明 输入

4 (repeat=4) 1 2 9 17 输出

NO (1不是素数) YES (2是素数) NO (9不是素数)