20165235 祁瑛 Java第四周考试总结
课后习题p29 p45
- 代码编写
import java.util.*; class Example2_5{ public static void main (String args[]){ int start = 0,end ,middle; int a[] = {12,45,67,89,123,-45,67}; int N = a.length; for(int i=0;i<N;i++){ for(int j=i+1;j<N;j++){ if(a[j] < a[i] ){ int t = a[j]; a[j] = a[i]; a[i] = t; } } } Scanner scanner = new Scanner(System.in); System.out.println("输入一个整数,程序判断该数是否在数组中:"); int number = scanner.nextInt(); int count =0; end = N; middle=(start+end)/2; while(number!=a[middle]){ if(number>a[middle]) start = middle; else if (number < a[middle]) end = middle; middle = (start+end)/2; count++; if(count>N/2) break; } if(count>N/2) System.out.printf("%d buzaishuzuzhong.\n",number); else System.out.printf("%d zaishuzuzhong.\n",number); } }
public class Example3_7{ public static void main (String args[]){ int sum =0,i,j; for(i=1;i<=10;i++){ if(i%2==0){ continue; } sum=sum+i; } System.out.println("sum="+sum); for(j=2;j<=100;j++){ for(i=2;i<=j/2;i++){ if(j%i==0) break; } if(i>j/2){ System.out.println(""+j+"是素数"); } } } }
- 在本次考试中因为我的截图上传失败,导致未能交上实验结果,可能是用QQ截图的原因。本次代码在第二周时已经敲好,如下为
- p29代码连接
- p45代码连接。
- 运行截图如下:
-
递归与循环
本次实验让我们通过编程实现1!+2!+3!+.....+n!的功能。代码如下:
public class A{
public static void main(String args[]){
int [] a = new int [args.length];
for(int i =0;i<args.length;i++){
a[i] = Integer.parseInt(args[i]);
}
int sum = 0;
if(args.length<1){
System.out.println(" 输入有误! ");
System.exit(0);
}
for(int i =1;i<=a[0];i++){
sum += fact(i);
}
if (sum<=0){
System.out.println(" 输入有误! ");
System.exit(0);
}
System.out.println(sum);
}
public static int fact(int n) {
if (n == 0)
return 1;
else
return n * fact(n-1);
}
}
- 这个程序利用递归实现了阶乘的和,其中
a[i] = Integer.parseInt(args[i])
把输入的数据存放在数组中,在递归运算时只调用a[0]中的数值去计算,如果数组长度小于1或输入负数则通过System.exit(0)
退出程序。 - 下面的是运行截图:
以下是码云代码连接。
考试内容总结
- 在用JDB调试代码得输入
jdb -classpath .:./bin A 3
,然后对函数设置断点,使用next
或使用step
进行单步运行。 如果想打印sum的值可以使用
print sum
来进行观察.第二三章编程题代码
- 第三四章编程代码连接。
- 代码运行结果图:
-