【自学java笔记#第十三天#】Java的基本程序设计结构
选用教材:《Java核心技术卷一》
第三章 Java的基本程序设计结构
一、第一题:
求1+2!+3!+4!+。。。。+20!的结果
1、单纯用循环解:
package homework; public class BallFreefall { public static void main(String[] args) { long count=1; long total=0; for(long i=1;i<=20;i++) { count*=i; total+=count; } System.out.print(total); } }
2、总结:这完全算是弄巧成拙了,本来还以为逻辑有问题,结果验证几次之后结果都是对的。这里用递归算法反而还麻烦一些,做的时候第一反应是这么大的和肯定要用大数,后来发现long也搞的定。
第二题:
输出9*9乘法口诀
1、9行9列的数组解法:
package homework; public class BallFreefall { public static void main(String[] args) { String[][]multiply_numbers=new String[9][9];//定义一个9行9列的二维数组 for(int i=0;i<multiply_numbers.length;i++) { for(int j=0;j<multiply_numbers[i].length;j++) { int count=(i+1)*(j+1); multiply_numbers[i][j]=""+(i+1)+"*"+(j+1)+"="+count;//按顺序输入口诀 } } for(String[] row:multiply_numbers) { for(String a:row) { System.out.printf("%8s",a); } System.out.println(); } } }
2、总结:完全是我没审清楚题,或者是小学学的数学都还给老师去了。看到书上不规则那一块的三角形数组,我就抓破了脑袋想搞一个9行9列的正方形数组出来。结果就是这么个不伦不类的口诀表了。
第三题:
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
1、三个for循环嵌套的解法:
package homework; public class BallFreefall { public static void main(String[] args) { for(char a='x';a<='z';a++) { for(char b='x';b<='z';b++) { for(char c='x';c<='z';c++ ) { if(a!='x' && c!='x' && c!='z' && a!=b && a!=c && b!=c) //最后三个条件是为了防止a、b或者c和同一个人比赛而设置的 { System.out.println("a vs "+a); System.out.println("b vs "+b); System.out.println("c vs "+c); } } } } } }
2、总结:这是参考别人的经验解出来的,真的没想到还能这么解,但是转念一想xyz不正好是连在一起的英文字母吗,所以用循环解无疑是对目前的我来说最好的解法了。

浙公网安备 33010602011771号