《JAVA程序设计第二次作业.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计第二次作业.docx(5页珍藏版)》请在三一办公上搜索。
1、JAVA程序设计第二次作业JAVA程序设计第二次作业 1、从键盘输入3个浮点数作为三角形三边的边长,试计算三角形的面积。 程序代码: import java.lang.Math; import java.util.*; public class Triarea public static void main(String args) double a,b,c,s,area; int flag=0; System.out.println(Please enter the triangles three side Scanner input = new Scanner(System.in); wh
2、ile(flag=0) a = input.nextDouble; /三角形三边长 b = input.nextDouble; c = input.nextDouble; s=(a+b+c)/2; if(a+bc)&(b+ca)&(a+cb) area=Math.sqrt(s*(s-a)*(s-b)*(s-c); /海伦公式求三角形面 System.out.println(The area is +area); flag=1; break; length(a,b,c):); 积 else System.out.println(ERROR!Cant constitute a triangle,p
3、lease enter again:); 程序运行结果: 2.编程序,显示螺旋方阵,如四阶方阵: 程序代码: import java.util.*; public class Spiral_matrix 程序运行结果: public static void main(String args) int arr = new int100; int count = 1,flag = 0; System.out.println(Please enter the square dimension(=10):); Scanner input = new Scanner(System.in); int n
4、= input.nextInt; if(n=10) while(flag(n+1)/2) for(int i=flag,j=flag;jn-flag;j+) arri*n+j = count+; arri*n+j = count+; arri*n+j = count+; for(int i=flag+1,j=n-1-flag;i= flag;j-) flag+; for(int i=n-1-flag,j=flag-1;i=flag;i-) for (int j=0; jn;j+) System.out.print(t); System.out.print(arri*n+j); System.o
5、ut.print(t); arri*n+j = count+; for(int i=0; in;i+) else System.out.println(ERROR!); System.out.print(n); 3、 研究一下八皇后问题,并用java实现其解决方案。在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 程序代码: public class Queen int count; / 记录方案数 int row = new int8; / 记录8个皇后所占用的列号 boolean col = new boolean8; / 列安全标
6、志 boolean diag1 = new boolean15; / 对角线安全标志 boolean diag2 = new boolean15; / 反对角线安全标志 void solve(int i) for (int j = 0; j 8; j+) if (colj & diag1i - j + 7 & diag2i + j) / 表示第i行第j列是安全的可以放皇后 rowi = j + 1; colj = false; / 修改安全标志 diag1i - j + 7 = false; diag2i + j = false; if (i 7) / 判断是否放完8个皇后 solve(i +
7、 1); / 未放完8个皇后则继续放下一个 else/ 已经放完8个皇后 count+; System.out.println(n皇后摆放第 + count + 种方案:); System.out.print(坐标分别为:); for (int i1 = 0; i1 8; i1+) System.out.print(+(i1+1)+,+rowi1+) ); colj = true; / 修改安全标志,回溯,寻找下一解决方案,直到所有解决方案寻找完毕,跳出! diag1i - j + 7 = true; diag2i + j = true; public static void main(String args) Queen queen = new Queen; System.out.println(*八皇后问题*); queen.count = 0; / 方案初始化 for (int i = 0; i 8; i+) queen.coli = true; / 置所有列为安全 for (int r = 0; r 15; r+) / 置所有对角线为安全 queen.diag1r = queen.diag2r = true; queen.solve(0); 程序运行结果: