Day10.2:九九乘法表打印详解思路

九九乘法表打印

按照以下格式对九九乘法表正确输出:

/*
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	
*/
  • 思路

看到这张表时,我们首先从输出的结果观察,用逆向思维倒推代码;

我们观察到一共有九行,很明显是用到了System.out.println();来实现的换行;

我们还观察到每一行的输出内容不止一项,可以推导出会用到System.out.print();来实现一行多输出;

我们观察每一行的两个因数(一个叫a,一个叫b)的值,始终一个因数不会超过另外一个因素;例如第九行,从1×9,一直增长到9×9;第八行:1×8到8×8;这里我们可以联想到a<=b;

我们再观察每一列的因数的规律,有一个因数的值是循环增加到9的;

我们可以推到出有一个因数a是从1循环增加到9,分别乘以每一个小于或等于他的值b(即b循环增加到a):

for(int a=1;a<=9;a++){
    for(int b=1;b<=a;b++){
        System.out.print(a+"*"+b+"="+"(a*b)");//每一次a带值进来都会乘以每一个比他小的数
    }System.out.println();//将每一次的循环换行
}

/*最终打印出此表,我们会发现好像与文章开头并不一样,其实只需要在输出端将a和b互换位置即可
1*1=1	
2*1=2	2*2=4	
3*1=3	3*2=6	3*3=9	
4*1=4	4*2=8	4*3=12	4*4=16	
5*1=5	5*2=10	5*3=15	5*4=20	5*5=25	
6*1=6	6*2=12	6*3=18	6*4=24	6*5=30	6*6=36	
7*1=7	7*2=14	7*3=21	7*4=28	7*5=35	7*6=42	7*7=49	
8*1=8	8*2=16	8*3=24	8*4=32	8*5=40	8*6=48	8*7=56	8*8=64	
9*1=9	9*2=18	9*3=27	9*4=36	9*5=45	9*6=54	9*7=63	9*8=72	9*9=81	
posted @ 2022-11-13 23:55  工地佬  阅读(145)  评论(0)    收藏  举报