浙大JAVA-实验题答案08answerdoc资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙大J A V A-实验题答案08a n s w e r
实验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) 输出: 1.5 1.7183 import java.util.Scanner; 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); System.out.println((long)(s*10000+0.5)/10000.); } } /*---------------*/ 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 java.util.Scanner; 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); System.out.println(sn); } } /*------------*/ 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 java.util.Scanner; 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); System.out.println("count="+count); } } /*------------*/ static int countdigit(long number,int digit){ //统计整数number中数字digit的个数 int a,c=0; while(number>0){ a=(int)(number%10); if(a==digit)c++; number=number/10; } return c; } } 50004 判断素数 输入一个正整数repeat (0 输入一个正整数n,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。 例:括号内是说明 输入 4 (repeat=4) 1 2 9 17 输出