zoukankan      html  css  js  c++  java
  • 算法编程学习之递归

    递归:程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

    实例:

    1.一个整数, 大于 0, 不用循环和本地变量, 按照 n, 2n, 4n, 8n 的顺序递增, 当值大于 5000 时, 把值按照指定顺序输出来。

    例: n=1237
    则输出为:
    1237,
    2474,
    4948,
    9896,
    9896,
    4948,
    2474,
    1237,
    提示: 写程序时, 先致谢按递增方式的代码, 写好递增的以后, 再增加考虑递减部分 
    代码:

     1 import java.util.Scanner;
     2  
     3  public class demo {
     4      //递归函数
     5     public static void fun(int i){
     6         System.out.println(i);//先输出一下i值用于输出递增数据
     7         if(i<=5000){//满足条件调用自身
     8             fun(2*i);
     9         }
    10         System.out.println(i);//用于输出递减
    11      }
    12      public static void main(String[] args) {
    13         System.out.println("请输入一个整数:(小于5000)");
    14         Scanner scanner = new Scanner(System.in);
    15          int i= scanner.nextInt();
    16         //调用递归函数
    17         fun(i);
    18     }
    19 }

    2.第 1 个人 10, 第 2 个比第 1 个人大 2 岁, 依次递推, 请用递归方式计算出第 8个人有多大?

     1 import java.util.Scanner;
     2 
     3 public class demo {
     4     //递归函数
     5     public static int computeAge(int n)
     6     { 
     7         if(n==1) return 10;
     8         return computeAge(n-1) + 2;
     9     } 
    10     //主方法程序入口
    11     public static void main(String[] args) {
    12         //输入一个整数
    13         System.out.println("请选择计算第几位的年龄:");
    14         Scanner scanner = new Scanner(System.in);
    15         int i= scanner.nextInt();
    16         //调用递归函数
    17         System.out.println("第"+i+"位的年龄是"+computeAge(i));
    18     }
    19 }
     
  • 相关阅读:
    string数组批量转换成Int数组
    TCP/IP 、 HTTP 、HTTPS
    静态布局、自适应布局、流式布局、响应式布局、弹性布局等的概念和区别
    Vue源码学习02 初始化模块init.js
    IOS8白屏
    VUE 源码学习01 源码入口
    http状态码
    vue全家桶(Vue+Vue-router+Vuex+axios)(Vue+webpack项目实战系列之二)
    Vue实战Vue-cli项目构建(Vue+webpack系列之一)
    module.exports,exports,export和export default,import与require区别与联系【原创】
  • 原文地址:https://www.cnblogs.com/zhaideyou/p/5935277.html
Copyright © 2011-2022 走看看