浙大JAVA实验题答案07answer

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

实验7 循环结构程序的设计(二)

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

40004 求1-1/2+1/3-1/4+……

输入一个正整数repeat (0

读入1 个正整数 n(n<=100),计算并输出1-1/2+1/3-1/4+……的前n项和(四舍五入保留小数4位)。

例:括号是说明

输入

2 (repeat=2)

10

3

输出

0.6456

0.8333

import java.util.Scanner;

public class Test40004 {

public static void main(String[] args) {

int ri, repeat;

int i, n, flag;

float sum;

Scanner in=new Scanner(System.in);

repeat=in.nextInt();

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

n=in.nextInt();

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

sum=0;

flag=1;

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

sum+=flag*1.0f/i;

flag=-flag;

}

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

}

}

}

40006 求1-1/3+1/5-1/7+……

输入一个正整数repeat (0

读入1 个正实数eps,计算并输出1-1/3+1/5-1/7+……,直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。

例:括号是说明

输入

2 (repeat=2)

1E-4

0.1

输出

0.7853

0.8349

import java.util.Scanner;

public class Test40006 {

public static void main(String[] args) {

int ri, repeat;

int temp, flag;

double eps, item, sum;

Scanner in=new Scanner(System.in);

repeat=in.nextInt();

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

eps=in.nextDouble();

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

item=1;

sum=0;

temp=flag=1;

while(Math.abs(item)>=eps){

sum+=item;

flag=-flag;

temp+=2;

item=flag*1.0/temp;

}

System.out.println((int)(sum*10000+0.5)/10000.);

}

}

}

40011 求2/1+3/2+5/3+8/5+...

输入一个正整数repeat (0

输入一个正整数n,输出 2/1+3/2+5/3+8/5 +...的前n项之和,保留4位小数(不足4位时,不必用0填满4位)。(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)

例:括号是说明

输入

3 (repeat=3)

1 5 20

输出

2.0 (第1项是2.0)

8.3917 (前5项的和是8.3917)

32.6603 (前20项的和是32.6603)

import java.util.Scanner;

public class Test40011 {

public static void main(String[] args) {

int ri, repeat;

int i,n;

float a,b,s,t;

Scanner in=new Scanner(System.in);

repeat=in.nextInt();

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

n=in.nextInt();

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

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

a=1; //分母

b=2; //分子

s=0;

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

s+=b/a;

t=a;

a=b; //分母是前一项的分子

b=t+b; //分子是前一项分子与分母的和

}

System.out.println((int)(s*10000+.5)/10000.); }

}

}

40012 求a+aa+aaa+aa…a

输入一个正整数repeat (0

相关文档
最新文档