黑马程序员技术交流社区
标题:
关于打印9*9乘法表的问题
[打印本页]
作者:
小丑的媳妇2
时间:
2013-3-4 10:22
标题:
关于打印9*9乘法表的问题
本帖最后由 朱荣宁. 于 2013-3-12 23:47 编辑
今天看毕老师视频:利用for循环打印 9*9 表?我自己找到一种方法,求高手给出其它的方法,我主要是想知道能不能用递归?多谢
用for循环打印 9*9 表?
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
//循环嵌套,打印九九乘法表
public class NineNine{
public static void main(String[]args){
System.out.println();
for (int j=1;j<10;j++){
for(int k=1;k<10;k++) { //判断语句里的 k<=j,省去下列的if语句。
if (k>j) break; //此处用 continue也可以
System.out.print(” “+k+”X”+j+”=”+j*k);
}
System.out.println();
}
}
}
作者:
张子凯
时间:
2013-3-4 11:33
这个应该可以能用递归吧,只是我想不出来。。。坐等大神。。。
作者:
黑马_位志国
时间:
2013-3-4 11:49
本帖最后由 黑马_位志国 于 2013-3-4 11:52 编辑
递归算法解决问题的特点:
(1) 递归就是在过程或函数里调用自身。
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。
(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序。
递归算法要求
递归算法所体现的“重复”一般有三个要求:
一是每次调用在规模上都有所缩小(通常是减半);
二是相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入);
三是在问题的规模极小时必须用直接给出解答而不再进行递归调用,因而每次递归调用都是有条件的(以规模未达到直接解答的大小为条件),无条件递归调用将会成为死循环而不能正常结束。
作者:
BitmapFactory
时间:
2013-3-4 18:27
public class Test {
public static void main(String[] args) {
print99(9);
}
public static void print99(int x) {
if (x > 1)
print99(x - 1);
for (int i = 1; i <= x; i++) {
System.out.print(i+"*"+x+"="+i*x+"\t");
}
System.out.println();
}
}
复制代码
这样做就可以了
作者:
文密
时间:
2013-3-4 20:58
class Demo
{
public static void main(String[] args)
{
nineNine(9);
}
public static void nineNine(int i)
{
if(i==1)
{
System.out.print(i+"*"+i+"="+i*i);
}
else
{
nineNine(i-1);
for(int j=1;j<=i;j++)
{
System.out.print(j+"*"+i+"="+j*i+"\t");
}
}
System.out.println();
}
}
递归的做法。希望对你有用
方法有很多种。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2