美文网首页
Aries之递归算法实际应用

Aries之递归算法实际应用

作者: Ariest | 来源:发表于2016-06-05 19:40 被阅读0次

在调用一个函数的过程中又出现直接或间接地调用该函数本身,成为函数的递归调用.
递归的两个条件:
1.函数自己调用自己;
2.必须有个明确地返回值.
说明: 函数每次调用,都会分配新的存储空间.
例一:
有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第四个人岁数,他说比第三个人大2岁,以此类推,最后问第一个人,他说是10岁。请问第5个人多大?

-(NSUInteger)computeAgeWithNumber:(NSUInteger)num {
    if (num == 1) return 10;
    return [self computeAgeWithNumber:num-1] + 2;
}
- (void)viewDidLoad{
    [super viewDidLoad];
    NSUInteger result=[self computeAgeWithNumber:5];
    NSLog(@"result=%ld",result);
}

例二:
一列数的规则如下: 1、1、2、3、5、8、13、21、34、......求第30位是多少,用递归算法实现。

-(NSUInteger)computeCountwithNumber:(NSUInteger)num{
    if (num <= 2) return 1;
    return [self computeCountwithNumber:num-1] + [self computeCountwithNumber:num-2];      
}
- (void)viewDidLoad{
    [super viewDidLoad];
    NSUInteger result=[self computeCountwithNumber:30];
    NSLog(@"result=%ld",result);
}

例三:
利用递归实现n的阶乘的计算

-(NSUInteger)computeFactorialWithNumber:(NSUInteger)num {
    if (num == 0 || num == 1) return num;
    return [self computeFactorialWithNumber:num-1] * num;
}
- (void)viewDidLoad{
    [super viewDidLoad];
    NSUInteger result=[self computeFactorialWithNumber:5];
    NSLog(@"result=%ld",result);
}

相关文章

  • Aries之递归算法实际应用

    在调用一个函数的过程中又出现直接或间接地调用该函数本身,成为函数的递归调用.递归的两个条件:1.函数自己调用自己;...

  • 递归的Java实现

    算法 数据结构——递归的运行机制:递归的微观解读 递归是一种应用非常广泛的算法(或者编程技巧)。递归求解问题的分解...

  • 递归算法与递归算法的应用

    这一讲,我们来聊聊递归法算。 概念 什么是递归算法?若一个算法直接地或间接地调用自己本身,则称这个算法是递归的。 ...

  • 快速幂模板

    递归算法 非递归算法

  • 汉诺塔问题的求解与分析

    一、递归算法介绍 这篇文章讲的是一个古老而又经典的汉诺塔问题,他是递归算法的一个很好的应用实例。有关递归函数的介绍...

  • Java递归算法应用

    递归: 就是函数自身调用自身。什么时候用递归呢?当一个功能被重复使用,而每一次使用该功能时的参数不确定,都由上次的...

  • 递归方法思想

    递归算法基础 在计算机编程应用中,递归算法对解决大多数问题都是十分有效的,主要是因为它能够使算法的描述变得简洁和易...

  • python递归算法、尾递归算法及优化

    文章概述 递归算法和尾递归概述递归算法的优化 递归算法 介绍:递归算法是计算机编程领域非常重要的一种算法,采用分而...

  • C++ 递归算法

    递归算法,尾递归算法求阶乘!

  • 数据结构-递归

    如何理解“递归”? 递归是一种应用非常广泛的算法(或者编程技巧)。之后我们要讲的很多数据结构和算法的编码实现都要用...

网友评论

      本文标题:Aries之递归算法实际应用

      本文链接:https://www.haomeiwen.com/subject/kmsrdttx.html