吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5155|回复: 16
收起左侧

[C&C++ 转载] 不用循环输出99乘法表

[复制链接]
15193643451 发表于 2014-10-27 17:25
思路是先在main函数里面调用行数这个方法,在由行数调用列数的方法,又由列数调用行数,依次调用,就形成了类似循环的效果,
这种方法叫“递归”
public class NextDiGui {
        public static void main(String[] args) {
                row();
        }
        static int num1 =0,  num2 =1;
        public static void row(){
                num1++;
               
                if(num1<10){
                        col();
                }
        }
        public static void col(){
               
                if(num2<=num1){
                        
                        System.out.print(num1+"*"+num2+"="+num1*num2+"\t");
                        num2++;
                        col();
                }
                else{
                        num2=1;
                        System.out.println();
                        row();
                        
                }
        }
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

蓝色芒果 发表于 2015-11-15 12:24
class HomeWork8
{
        public static void main(String[] args)
        {
                timesTable(1,1);//调用函数
        }
        public static void timesTable(int a,int b){//由于鄙人技术有限,所以用的两个参数,
//一个代表行(a),一个代表列(b)
                if(a==1){//判断如果是第一行第一列的话,就没有必要递归了,直接打印出来。
                        System.out.println(a+"*"+b+"="+(b*a));
                        timesTable(++a,b);//第一行打印完毕,开始递归
                }else{
                        System.out.print(a+"*"+b+"="+(b*a)+"\t");//输出每一行的每一列
                        if(b>=a){//如果行数等于列数,就代表来到了末尾。
                                System.out.println();//换行
                                b=1;//把列数重新设置为1
                                if(a++>=9){//行数判断是否大于9或者等于9,不管大于或者小于行数a都自增。
                                        return;//当a大于9是,说明本程序该结束了,return
                                }
                                timesTable(a,b);//继续下一行的递归
                                return;        //返回
                        }
                        b++;//在一行的递归中列数自增
                        timesTable(a,b);//每一列递归。
                       
                }
        }
}

//转载至帽子云博客
JustPasserby 发表于 2015-11-16 13:26
这是VC?虽然说有另类的思路是好的,但我感觉完全没有意义啊,递归迭代是一回事,但99乘法表本身并没有什么需要运算的地方,用递归输出又有什么意义呢
刺蝴蝶De箫启灵 发表于 2014-10-27 18:28
蚯蚓翔龙 发表于 2014-10-27 18:48
递归跟循环类是
fishyoyo 发表于 2014-10-27 19:03
楼主辛苦  学习了  
头像被屏蔽
yyz219 发表于 2014-10-27 19:16
提示: 作者被禁止或删除 内容自动屏蔽
manbajie 发表于 2014-10-28 21:28
这么强悍的做法  
木槿 发表于 2014-10-30 15:11
。。。。。。。。又不一样的思路总是好的
Wannxy 发表于 2015-11-15 19:29 来自手机
正在学习,受教了。
gchq2005 发表于 2015-11-15 20:15
虽然递归和循环类似,但楼主想法还是真不错的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 10:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表