浙大JAVA实验题答案07answer
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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