A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵小豪 中级黑马   /  2014-4-11 23:19  /  3062 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵小豪 于 2014-4-12 17:21 编辑

九九乘法表-不使用循环输出

点评

哥们,建议再仔细看看毕老师的视频  发表于 2014-4-12 19:36

12 个回复

倒序浏览
  1. package com.itheima;
  2. /**
  3. * 第六题:用控制台程序倒着输出九九乘法表;输出结果按下图所示:
  4. * 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
  5. * ……
  6. * 1*3=3   2*3=6   3*3=9
  7. * 1*2=2   2*2=4
  8. * 1*1=1
  9. * @author muma
  10. *
  11. */



  12. /*        思路:1、发现九九乘法格是九行九列,采用嵌套循环遍历的方式;
  13.                 2、在每一行中第二个积数随着列数的增加而保持不变,定义条件,每行第二个积数随列数的增加保持不变;
  14.                 3、在每一行中表达式中的第一个积数随着列数的增加而增加,定义条件,每行第一个积数随列数增加.
  15.           步骤:1、定义循环语句,选择两个for语句进行嵌套;
  16.                 2、在外循环中定义变量y=9,随其自减而保证输出9行;
  17.                 3、在内循环中定义变量x=1,随其自增而保证输出9列,限定x<=y条件来满足九九算数格图示;
  18.                 4、在内循环中按图示写出输出表达式,在外循环输出换行。
  19. */
  20. public class Test6 {
  21.         public static void main(String[] args)
  22.         {
  23.                 for ( int y=9;y>=1;y--)//外循环控制行数,一共九行
  24.                 {
  25.                         for ( int x=1;x<=y ;x++)
  26.                         {
  27.                                 System.out.print(x+"*"+y+"="+x*y+"\t");//输出每行的图示表达式
  28.                         }
  29.                 System.out.println();//换行
  30.                 }
  31.         }

  32. }
复制代码
回复 使用道具 举报

亲,请注意题目不要循环。这个小儿科啦。不用循环来实现。。。。
回复 使用道具 举报
不使用循环岂不是使问题更麻烦了。。
回复 使用道具 举报
本帖最后由 袁啟雄x 于 2014-4-12 08:26 编辑

不用循环是吧,没说不可以用递归.你也不能说循环和递归一样.递归有返回过程,这点跟循环不同
  1. public class Table{

  2.         public static void main(String[] args) {
  3.                 printTable(1, 1);
  4.         }
  5.        
  6.         public static void printTable(int x , int y){
  7.                 if(x>9&&y>9) return ;
  8.                 System.out.print(x+"x"+y+"="+x*y+++"   ");
  9.                 if(y>9) {x++;y=x;System.out.println("");}
  10.                 printTable(x,y);
  11.         }

  12. }
复制代码



回复 使用道具 举报
袁啟雄x 发表于 2014-4-12 08:23
不用循环是吧,没说不可以用递归.你也不能说循环和递归一样.递归有返回过程,这点跟循环不同

递归不错,我很喜欢。先赞一个,但是输出的结果有那么一点。。。。。

20140412083944088.jpg (132.87 KB, 下载次数: 144)

递归九九乘法表

递归九九乘法表
回复 使用道具 举报
在这我分享一个不要循环输出打印《九九乘法表》的算法。我相信大家看后会明白。原理就跟我们输出一个直三角形一样的。

20140412085128475.jpg (174.92 KB, 下载次数: 130)

不用循环实现九九乘法表

不用循环实现九九乘法表

20140412085146760.jpg (177 KB, 下载次数: 122)

打印结果

打印结果
回复 使用道具 举报
Kelvinhu 发表于 2014-4-12 00:13
不使用循环岂不是使问题更麻烦了。。

每一个题的算法都多样的,多换换算法更好。麻烦不麻烦看你如何理解如何看待。很多东西东西等你知道真想了就会发现不过如此
回复 使用道具 举报
zengming13 发表于 2014-4-12 09:05
public static void main(String[] args) {
                printTable(1, 1);
        }

每个递归真喜欢,很妙很清晰。我一看就懂了。赞,太感谢了。太棒了,这就是我想要的结果。
回复 使用道具 举报
public class Test6
{
        public static void main(String[]args)
        {
                 for (int i=1,j=9; j>=1;i++)
                 {
                         //显示打印的格式为“i*j=”,同行打印
             System.out.print(i+"*"+j+"="+i*j+" ");
            
             //运算到i=j,下一行新的开始
             if(i==j)
             {
                 i=0;
                 j--;
                 System.out.println();
             }
         }
        }
}
回复 使用道具 举报
muma 中级黑马 2014-4-12 19:08:00
11#
赵小豪 发表于 2014-4-11 23:59
亲,请注意题目不要循环。这个小儿科啦。不用循环来实现。。。。

那就很麻烦了 亲
回复 使用道具 举报
= =哦对 可以用递归。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马