Java基础之逐步击破----九九乘法表
来源:互联网 发布:linux文件内容复制 编辑:程序博客网 时间:2024/05/01 09:00
要求:用循环打印一个九九乘法表
标注:一道面试经常会考的题目,所以我们一起来弄懂这道题目吧
分析: 打印该乘法表要打印(1+2+3+…+9) = 45次,如果一一打印必然非常麻烦
所以用循环来做,此时for循环是最适合这道题的
//核心代码public static void main(String[] args){ int num = 0; //用来接收乘法的值 for(int i = 1; i <= 9; i++) { for(int j = 1; j <= i; j++) { num = i * j; //此处用print,是因为一行,需要打印多个结果 System.out.print(j + " * " + i + "=" + num + " "); } //在此处换行 System.out.println(); }}
探讨:九九乘法表其实并不难,理解双重for()循环怎么使用,就能打印出来,
但是如果让你打印一个对称的九九乘法表(如下图),应该怎么做呢?
如图所展示:
接下来让我们击破,这一小问题吧!
public static void main(String[] args) { int num = 0; //用来接收乘法的值 for(int i = 1; i <= 9; i++) { for(int j = 1; j <= i; j++) { num = i * j; //此处用print,是因为一行,需要打印多个结果 System.out.print(j + "*" + i + "=" + num + " "); } //在此处换行 System.out.println(); } //在这里加一个减法循环,也就是让乘法表从高到低依次打印 for(int i = 8; i > 0; i--) { for(int j = 1; j <= i; j++) { num = i * j; System.out.print(j + "*" + i + "=" + num + " "); } System.out.println(); } }
其实所用的方法也是for()循环,只不过是,用了减法条件来做,有逆向思维。
如:
for(int i = 100; i > 0; i++){ System.out.println(i);}
这段代码其实就是,从100打印到1,倒序来打印的。
有点难以理解。
如果能够理解恒对称九九乘法表的话,那么我们来进入下一个难题吧!
蝴蝶结舅舅乘法表
只需要在循环换行之前,加上这段代码就行了
// **** 用\t缩进,以达到最右端的效果, (9-i)*2意思是要打印这么多的空格 for(int k = 1; k <= (9-i)*2; k++) { System.out.print("\t\t"); }// ****接下来就是打印右侧的九九乘法表了 for(int m = i; m > 0; m--) { num = m * i; System.out.print("\t" + m + "*" + i + "=" + num); }
结果展示:
总代码为:
public static void main(String[] args) { int num = 0; //用来接收乘法的值 for(int i = 1; i <= 9; i++) { for(int j = 1; j <= i; j++) { num = i * j; //此处用print,是因为一行,需要打印多个结果 System.out.print(j + "*" + i + "=" + num + "\t"); }// **** 用\t缩进,以达到最右端的效果, (9-i)*2意思是要打印这么多的空格 for(int k = 1; k <= (9-i)*2; k++) { System.out.print("\t\t"); }// ****接下来就是打印右侧的九九乘法表了 for(int m = i; m > 0; m--) { num = m * i; System.out.print("\t" + m + "*" + i + "=" + num); } //在此处换行 System.out.println(); }// 打印下面的九九乘法表 for(int i = 8; i > 0; i--) { for(int j = 1; j <= i; j++) { System.out.print(j + "*" + i + "=" + (i*j) + "\t"); }// ****用\t缩进,以达到最右端的效果, (9-i)*2意思是要打印这么多的空格 for(int k = 1; k <= (9-i) * 2; k++) { System.out.print("\t\t"); }// ****打印右侧的九九乘法表 for(int m = i; m > 0; m--) { num = m * i; System.out.print("\t" + m + "*" + i + "=" + num); } System.out.println(); } }
阅读全文
0 0
- Java基础之逐步击破----九九乘法表
- Java基础逐步击破----菱形
- Java基础之九九乘法表
- Java基础之九九乘法表
- java巩固基础之函数(九九乘法表)
- java基础-九九乘法表
- JAVA之输出九九乘法表
- Java web 之 九九乘法表 .
- JAVA之打印九九乘法表
- java基础编程:输出九九乘法表
- java基础知识之 算法 九九乘法表
- Java web 之 九九乘法表 .2
- Java web 之 九九乘法表 .3
- Java web 之 九九乘法表 .4
- Java web 之 九九乘法表 .5
- Java web 之 九九乘法表 .5
- Java web 之 九九乘法表 .6
- Java web 之 九九乘法表 .7
- 矩阵乘法(Strassen 算法实现)
- 设计全局ER模型 数据库系统原理(2007版) 课程代码4735 笔记
- UVa 1471 Defense Line 防线
- 二叉树-中序遍历
- Spring框架的注释问题
- Java基础之逐步击破----九九乘法表
- 网站图片应如何SEO优化?
- SpringMVC单文件文件上传
- 网络初接触
- 计蒜客 加减乘除 带括号(栈实现和二叉树两种实现)
- hdu1062
- 从电脑传PDF到IPad的阅读器上
- POJ 1001(高精度乘法)
- NWERC 2013