浙大java实验题答案08answer

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

实验8 Method的使用1.程序填空题,不要改变与输入输出有关的语句。

50001 求1 + 1/2! +....+ 1/n!

输入一个正整数repeat (0

s = 1 + 1/2! +....+ 1/n!

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

例:括号内是说明

输入:

2 (repeat=2)

2 (n=2)

10 (n=10)

输出:

import class Test50001 {

public static void main(String[] args) {

int ri,repeat;

int i,n;

double s;

Scanner in=new Scanner;

repeat=();

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

n=();

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

s=0;

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

s+=fact(i);

}

}

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

static double fact(int n) {

int i;

double f=1;

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

f*=i;

return f;

}

}

50002 求a+aa+aaa+aa…a

输入一个正整数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)

import class Test50002{

public static void main(String args[]){

int ri, repeat;

int i, n,a;

long sn;

Scanner in=new Scanner;

repeat=();

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

a=();

n=();

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

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)

import class Test50003{

public static void main(String args[]){

int ri, repeat;

int count;

long n;

Scanner in=new Scanner;

repeat=();

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

n=();

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

n=(n);

count=countdigit(n,2);

"count="+count);

}

}

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

static int countdigit(long number,int digit){

....

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

输出语句:" ");

例:括号内是说明

输入:

3 (repeat=3)

1 10 (m=1, n=10)

20 100 (m=20, n=100)

1000 6000 (m=1000, n=6000)

输出:

1 1

2

3 5 8 (1到10之间的Fibonacci数)

21 34 55 89 (20到100之间的Fibonacci数) 1597 2584 4181 (1000到6000之间的Fibonacci数) import class Test50006{

public static void main(String args[]){

int ri,repeat;

int i, m, n;

long f;

Scanner in=new Scanner;

repeat=();

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

m=();

n=();

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

i=1;

f=1;

while(f<=n){

if(f>=m) " ");

i++;

f=fib(i);

}

}

}

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

sta ti c long fib(int n){ //返回第n项Fibonacci数int i;

long a=1,b=1,f=1;

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

f=a+b;

a=b;

b=f;

}

return f;

}

}

相关文档
最新文档