Embarcadero加油

呵呵呵。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  本txt致力于解决一些打印特殊图形的题目。尤其是,对于具备行和列特征的类型。只要用到的就是内外嵌套循环的组合控制。请认真explore it吧。

  准备条件:首先,这类行列问题,往往,是需要内外嵌套循环才能够解决。所以,学习点语句嵌套的知识。

  1.语句嵌套:其实,就是语句当中还有语句。

  2.for循环语句当中有if判断语句,这也叫语句嵌套。

  3.循环嵌套比较经典。主要也就是解决这方面的理解和应用问题。

  举一小例子:循环嵌套:

    for (int x = 0;x<3;x++){

      for(int y=0;y<3;y++){

        System.out.print("*"); 

      } 

    }

  这个语句执行结果是:打印12个*

  在头脑中分析这个过程。

  看代码例子: 

    for(int x =0;x<3;x++) {

      for (int y =0 ;y<4;y++){

        System.out.print("*"); 

      } 

      System.out.println();//只有一个作用:换行。 

    }

  执行结果:****

       ****

       ****

  (个人收获)打印长方形:外循环控制的是行,内循环控制的是列,每一行的列数,也就是一行中元素的个数。

  me: 这个是一种思想。明白这个思想,可以解决好多的问题。下面进行相关的应用性质的练习。请好好的explore it 吧。

<1>打印

*****

****

***

**

*

 评评分析:从本质上去看,这个打印结果,有5行,有5列。所以,这是个行列问题。采用语句嵌套解决。

5行,说明可以写出来,外循环有5次循环。无论你是使用--系列,还是++系列,各自对应2个,结果总共4个方案。这都没啥差别。都是控制5次外循环就ok啦。

列的元素从5,4,3,一次递减。这个内循环打印个数的规律。有规律就好办。

 

 看自己写下的代码:

class ForForDown{
public static void main(String[] args){
for (int x=0;x<5;x++){
for(int y=0;y<5-x;y++){
System.out.print("*");
}
System.out.println();
}

System.out.println("---------------------------");
for (int x1=0;x1<5;x1++){
for (int y1=x1;y1<5;y1++){
System.out.print("*");
}
System.out.println();
}

System.out.println("----------------------------");
for (int x2=5;x2>0;x2--){
for(int y2=0;y2<x2;y2++){
System.out.print("*");
}
System.out.println();
}

System.out.println("----------------------------");
for (int x3=5;x3>0;x3--){
for(int y3=5-x3;y3<5;y3++){
System.out.print("*");
}
System.out.println();
}

}


}

<2> 打印:

*

**

***

****

***** 

看自己写的代码:

 

class ForForUp{
public static void main(String[] args){
for (int x =0;x<5;x++){
for (int y=5-x;y<=5;y++){
System.out.print("*");
}
System.out.println();
}

System.out.println("------------------------");
for (int x1 = 0;x1<5;x1++){
for (int y1=0;y1<=x1;y1++){
System.out.print("*");
}
System.out.println();
}
System.out.println("------------------------");
for (int x2=5;x2>0;x2--){
for (int y2=x2;y2<=5;y2++){
System.out.print("*");
}
System.out.println();
}
System.out.println("------------------------");
for(int x3=5;x3>0;x3--){
for (int y3=0;y3<=5-x3;y3++){
System.out.print("*");
}
System.out.println();
}

}
}

<3>打印:

既然学习了这个,那么,开始练习一个题目: 打印:

     *
    * *
   * * *
  * * * *
 * * * *  *

看我写的代码:

class Sanjiaoxing{
public static void main(String[] args){
System.out.println("Game begin");

for (int x1=0;x1<5;x1++){
for (int x2=0;x2<4-x1;x2++){
System.out.print(" ");

}
for(int x3=0;x3<=x1;x3++){
System.out.print("* ");
}

System.out.println();

}
}
}


看本质思想:外循环控制行,内循环控制列元素。元素本质。

<4>
 思考:
打印:9*9乘法表。

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
……
1*9=9 2*9=18 3*9=24 ……

看我的代码,经典呀:

class Jiujiu{
public static void main(String[] args){
System.out.println("Game begin");
for (int x1=1;x1<=9;x1++){
for (int x2=1;x2<=x1;x2++){
System.out.print(x2+"*"+x1+"="+x2*x1+"\t");
}
System.out.println();
}
}

}

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

评评:注意,对于\t,表格形式,重新的理解。以前的理解有误。

 

补充一下子:

打印菱形。(question added time:2011/12/16/Friday/Night)

 

数组采用选择排序法,本质上就是“行列思想”,在头脑中形象表示(用*号图解法最好)。(question added time:2012/01/06/Friday/Night) 

 

 

 

 

   

 

 

posted on 2011-12-09 19:36  评评  阅读(202)  评论(0编辑  收藏  举报