浙大Java语言程序设计编程答案6_第1页
浙大Java语言程序设计编程答案6_第2页
浙大Java语言程序设计编程答案6_第3页
浙大Java语言程序设计编程答案6_第4页
浙大Java语言程序设计编程答案6_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文档供参考,可复制、编制,期待您的好评与关注! 实验7 循环结构程序的设计(二)程序填空,不要改变与输入输出有关的语句。1. 求11/21/31/4 输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入1 个正整数 n(n<=100),计算并输出11/21/31/4的前n项和(四舍五入保留小数4位)。例:括号内是说明输入2 (repeat=2)103输出0.64560.8333import java.util.Scanner;public class Test40004 public static void main(String args)

2、 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.); 2. 求11/31/51/7 输入一个正整数repeat (0<repeat&l

3、t;10),做repeat次下列运算:读入1 个正实数eps,计算并输出11/31/51/7,直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。例:括号内是说明输入2 (repeat=2)1E-40.1输出0.78530.8349import 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 Scan

4、ner(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.); 3. 求2/13/25/38/5. 输入一个正整数repeat (0<repeat<

5、10),做repeat次下列运算:输入一个正整数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, rep

6、eat; 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.); 4. 求aaaaaaaaa 输入一个正整数repeat (0&

7、lt;repeat<10),做repeat次下列运算:输入2个正整数a和n, 求a+aa+aaa+aaa(n个a)之和。例:括号内是说明输入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 java.util.Scanner;public class Test40012 public static void main(String args) int ri, repeat; int i, n, a, sn, tn; Scanner in=new Scanne

8、r(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri+) a=in.nextInt(); n=in.nextInt(); /*-*/tn=a;sn=0;for(i=1;i<=n;i+)sn+=tn;tn=tn*10+a; /迭代公式 System.out.println(sn); 5. 判断素数输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个正整数m,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整

9、除的正整数,1不是素数,2是素数)。例:括号内是说明输入4 (repeat=4) 1 2 9 17输出NO (1不是素数)YES (2是素数) NO (9不是素数) YES (17是素数)import java.util.Scanner;public class Test40013 public static void main(String args) int ri, repeat; int i, m, n; boolean flag; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repea

10、t; ri+) m=in.nextInt(); /*-*/ flag=true; if(m=1)flag=false; for(i=2;i<=m-1;i+) if(m%i=0) flag=false; break; if(flag) System.out.println("YES"); else System.out.println("NO"); 说明:变量n未用到6. 求最小公倍数和最大公约数输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:输入两个正整数m和n,输出它们的最小公倍数和最大公约数。

11、输入输出示例:括号内为说明输入:3 (repeat=3)3 7 (m=3,n=7)24 4 (m=24,n=4)24 18 (m=24,n=18)输出:the least common multiple:21, the greatest common divisor:1the least common multiple:24, the greatest common divisor:4the least common multiple:72, the greatest common divisor:6import java.util.*;public class Test40014 publi

12、c static void main(String args) Scanner in=new Scanner(System.in); int gcd, lcm, m, n,r; int repeat, ri; repeat=in.nextInt(); for(ri=1; ri<=repeat; ri+) m=in.nextInt(); n=in.nextInt(); if(m<= 0|n<= 0) System.out.println("m <= 0 or n <= 0"); else /*-*/ lcm=m*n; if(m<n)r=m;

13、m=n;n=r; r=m%n; while(r!=0) m=n; n=r; r=m%n; gcd=n; lcm=lcm/gcd; System.out.println("the least common multiple:"+lcm +", the greatest common divisor:"+gcd); 7. 求1 + 1/2! +.+ 1/n! 输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入1 个正整数n,计算 s 的前n项的和。 s = 1 + 1/2! +.+ 1/n! 例:括号内是说明输

14、入:2 (repeat=2)2 (n=2)10 (n=10)输出:1.51.7183import java.util.Scanner;public class Test40021 public static void main(String args) int ri, repeat; int i,n; float s,t; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri+) n=in.nextInt(); /*-*/s=0;t=1;for(i=1;i<=n;i+)t*=

15、i;s+=1/t; /如果这两条语句交换位置,则i=1要改成i=2 System.out.println(int)(s*10000+0.5)/10000.); 8. 求各位数字的立方和等于它本身的数。输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入2 个正整数m和n(1<=m,n<=1000),输出m 和n之间所有满足各位数字的立方和等于它本身的数。输出语句:System.out.println(i);例:括号内是说明输入:2 (repeat=2)100 400 (m=100, n=400)1 100 (m=1, n=100)输出:

16、153 (1*1*1+5*5*5+3*3*3=153)370 (3*3*3+7*7*7=370)371 (3*3*3+7*7*7+1*1*1=371)1import java.util.Scanner;public class Test40022 public static void main(String args) int ri, repeat; int i, digit, m, n, number, sum; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri+) m=in

17、.nextInt(); n=in.nextInt(); /*-*/ for(i=m;i<=n;i+) number=i; sum=0; while(number>0) digit=number%10; sum+=digit*digit*digit; number=number/10; if(i=sum) System.out.println(i); 9. 统计素数并求和。 40023输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数

18、的和。例:括号内是说明输入:3 (repeat=2)1 10 (m=1, n=10)20 35 (m=20, n=35)14 16 (m=14, n=16)输出:count=4, sum=17 (1到10之间有4个素数:2,3,5,7)count=3, sum=83 (20到35之间有3个素数:23, 29, 31)count=0, sum=0 (14到16之间没有素数)import java.util.Scanner;public class Test40023 public static void main(String args) int ri, repeat; int count, i, j, k, m, n, sum; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri+) m=in.nextInt(); n=in.nextInt(); /*-*/ count=sum=0; for(k=m;k<=n;k+) for(i=2;i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论