要求:在控制台下输出如下图形

1
     121
  12321
1234321

1
     121
  12321
1234321
  12321
    121
      1

两个图形都是对称的,所以用递归很容易实现,下面贴出代码:

Demotest:

import java.util.Scanner;
public class Demotest{public static int i = 1;public static void Returnnum(int num,int up ){if(num == 1){System.out.print(up);return ;}else if(num == 0){System.out.print(num);return ;}else{System.out.print(up);Returnnum(num - 1,up + 1);System.out.print(up);}return ;}public static void main(String[] args){System.out.print("输入一个数字2-9之间:");int row = new Scanner(System.in).nextInt();for (int i = 0; i < row; i++){for (int k = 0; k < row-i-1; k++){System.out.print(" ");}Returnnum(i+1,1);System.out.println();}}
}

Demotest3:

import java.util.Scanner;
public class Demotest3{public static int i = 1;public static void Returnnum(int num,int up ){if(num == 1){System.out.print(up);return ;}else if(num == 0){return ;}else{System.out.print(up);Returnnum(num - 1,up + 1);System.out.print(up);}return ;}public static void run(int num,int up){if(num == 0){return ; }else{for(int i = 0; i< num;i++){System.out.print(" ");}Returnnum(up,1);System.out.println();run(num - 1,up + 1);for(int i = 0; i< num+1 ;i++){System.out.print(" ");}Returnnum(up-1,1);System.out.println();}}public static void main(String[] args){System.out.print("输入一个最大的数(3到9之间)表示菱形:");int  num = new Scanner(System.in).nextInt();run(num,1);}
}

在Demotest中定义了一个类方法Returnnum(),它的作用是输出一段回文数,它的第一个参数是回文数的最大数值,第二个参数代表是从数值几开始(一般为1),例如执行函数Returnnum(5,1),它将会输出123454321,Returnnum函数的作用仅仅如此。

在Demotest3中,run()函数的作用是输出菱形,它调用了我们刚刚写的Returnnum函数,因为菱形上下部分的结构上对称的用递归加上我们刚刚实现的函数可以轻松实现输出菱形。

递归使用案例:输出对称图形相关推荐

  1. 87-Java方法递归形式、算法流程总结、递归常见案例、递归经典案例-猴子吃桃问题、非规律化递归案例-文件搜索、啤酒问题

    方法递归 一.递归的形式和特点 1.什么是方法递归? 方法直接调用自己或者间接调用自己的形式称为方法递归(recursion). 递归作为一种算法在程序设计语言中广泛应用. 2.递归的形式 直接递归: ...

  2. 递归 递归的案例 递归的案例

    递归 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8&q ...

  3. python装饰器模式带参数_Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列)...

    Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列) 一丶带参数的装饰器 def wrapper_out(pt): def wrapper(func): ...

  4. 浙江大学 PTA 递归实现顺序输出整数

    6-5 递归实现顺序输出整数 (15 point(s)) 本题要求实现一个函数,对一个整数进行按位顺序输出. 函数接口定义: void printdigits( int n ); 函数printdig ...

  5. 【编译原理】WHILE循环语句的翻译程序设计与实现(递归下降法、输出四元式)(赋值语句的词法分析、语义分析)

    注:本文记录 WHUT-计算机学院-编译原理 课程 课内实践 >>点击查看武汉理工大学计算机专业课程资料汇总 项目下载地址:https://download.csdn.net/downlo ...

  6. 123456 递归逆序输出成[6,5,4,3,2,1]数组

    123456 递归逆序输出成[6,5,4,3,2,1]数组 直接上代码吧 比较简单 也许笔试能碰上! 哈哈哈 public static void main(String[] args) {Strin ...

  7. 递归思想解决输出目录下的全部文件

    刚刚了解了下递归思想 递归就是在方法内调用本方法 下面说一个实际的应用 输出目录下的全部文件,当目录中还有目录时,则进入目录输出里面的文件 import java.io.*; class ShowFi ...

  8. C语言经典例27-利用递归逆序输出字符串

    目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来. 2 分析 从递归程序设计三大要素角度来分析: 该递归程序的目的:逆序输出字符 ...

  9. Java递归基础案例-汉诺塔

    汉诺塔问题 /** * Title: 汉诺塔问题 * Description:古代有一个梵塔,塔内有三个座A.B.C,A座上有64个盘子,盘子大小不等,大的在下,小的在上. * 有一个和尚想把这64个 ...

最新文章

  1. XML文档操作工具类
  2. OPENCV标定外参
  3. 为gridview“删除”列添加确认对话框
  4. 微信小程序模板消息群发解决思路
  5. 管道 通过匿名管道在进程间双向通信
  6. PAIP.通过公共网络传递秘密信息.txt (包括语音和文字)
  7. 最适合入门的laravel初级教程(一)序言
  8. mas6a801 sw tree disp
  9. 软件性能测试方案怎么写?完整的性能测试报告模板分享
  10. python编写年金现值计算函数_Python基础(三) 汇率计算demo
  11. MySQL8.0零基础入门
  12. Rect Transform
  13. sql 根据出生日期计算年龄
  14. 少儿编程scratch -- 提高篇
  15. 15 个面向深度学习爱好者的开放数据集
  16. JSP中session的简单应用——以购物车为例
  17. Win未检测出摄像头
  18. SQL Server健康检查的重要性
  19. 【小家java】java9新特性(简述十大新特性) 褒贬不一
  20. 电磁场与电磁波(2)——场论

热门文章

  1. 物联网技术有望为新能源消纳提供一系列解决方案
  2. ANDROID 开发一个新闻阅读器之新闻列表
  3. 数据结构 二叉搜索树的删除
  4. HUAWEI设备如何配置VLAN
  5. JavaSE-面向对象编程-第二篇
  6. iOS-----使用AddressBook添加联系人
  7. 华为p6电信版 android 4.5,华为P6-C00电信版安卓4.4回退至Android4.2版本中转包及降级教程...
  8. 【Git|GitHub|SSH|Sourcetree 下篇】GitHub|Sourcetree|SSH部署及Git-flow工作流
  9. web自动化,定位镶嵌iframe框架的页面
  10. jsp中表格序号递增,varStatus=“vs“