美文网首页
递归和循环

递归和循环

作者: Echoooo_o | 来源:发表于2019-03-05 12:14 被阅读0次
  1. 求和1+3!+ 5!+7!+.....+(2n-1)!

  2. 台阶问题,n个台阶,问有多少种不同的方法跨到第n阶,
    条件:每步只能跨一个台阶或2个台阶

首先介绍一种看起来比较炫酷实际非常垃圾,为什么垃圾呢?因为他的时间复杂度还是O(n^2)
int fun10(int n){
    if(n==1) return 1;
    return fun(n-1)*n;
}
接着在main中:
int s,n;
    s = 0;
    n = 2;
    for(int i=1;i<=2*n-1;i++){
        if(i%2!=0){
            s+=fun(i);
        }
    }
    printf("%d",s);
既然垃圾,那么自然要寻求一种B格高一点又不失初心的求解咯
void fun11(){
    int i = 1;
    int s = 0;
    int n = 2;
    int t = 1;
    while(i<=2*n-1){        
        t=t*i;
        if(i%2!=0) s+=t;    #青涩的我对于问题的手腕呐! //手动狗头   
        i++;
    }
    printf("%d",s);
}
void fun12(){
    int i = 2;
    int s = 0;
    int n = 2;
    int t = 1;
    while(i<=n){
        t=t*(2*i-1)*(2*i-2); #老师的解决
        #a左t:要求的第i项的值:{2(i-1) - 1}!;  (请忽略那个字母a我只想让字发光)
        #a右t: 前一项的值:{2*(i-2)-1 }! 与要求的左t 差  (2*i-1)*(2*i-2)倍
        #eg:i=2 1!+3! 第i=2项就是 3!(左t)= 1!(右t) * 2*3 
        s+=t;
        i++;
    }
    printf("%d",s);
}
  1. 求组合数{C(n,m)}递归和循环两种算法实现
void fun20(int a[][],int n,int m){
    #使用循环计算组合数
    /*
    C(1,1) = 1
    C(2,1) = 2 C(2,2) = 1;
    C(3,1) = 3 C(3,2) = 3; C(3,3)=1
    C(4,1) = 4 C(4,2) = 6; C(4,3)=4; C(4,4)=1
    eg:C(4,2) = C(3,1) + C(3,2) = C(3,1) + {C(2,2) + C(2,1)}
    so:C(n,m) = C(n-1,m-1) + C(n-1,m)
    */
     for(int i=1;i<=n;i++){
        a[i][1] = i;
        a[i][i] = 1;
        for(int j=2;j<i;j++){
            a[i][j] = a[i-1][j-1] + a[i-1][j];
        }
     }
     return a[n][m];
}

相关文章

  • 递归和循环

    求和1+3!+ 5!+7!+.....+(2n-1)! 台阶问题,n个台阶,问有多少种不同的方法跨到第n阶,条件:...

  • 思想 / 递归和分治

    递归递归在程序语言中简单的理解是:方法自己调用自己。递归和循环是非常像的,循环都可以改写成递归,递归未必能改写成循...

  • 胡思乱想说递归-下

    递归,迭代与循环 先说一下递归,迭代和循环的意义吧 递归(recursion):指的是一个函数不断调用自身的行为 ...

  • 递归

    定义 递归在程序语言中简单的理解是:方法自己调用自己。递归其实和循环是非常像的,循环都可以改写成递归,递归未必能改...

  • 领扣算法12:整数转换为罗马数字

    题目描述: 递归实现: 循环实现: 递归与循环的比较:

  • 递归和死循环

    在计算机里面,递归永远要给出一个结束条件,比如递归的思维计算阶乘,即N!=1 x 2 x 3 x 4 ……x N,...

  • 2.4.1 递归和循环

    面试题10:斐波那契数列递归会存在大量的重复数据。按照如下进行优化 题目二:跳台阶 一只青蛙一次可以跳上1级台阶,...

  • 递归与循环

    理论上,任何循环都可以重写为递归形式。有些语言没有循环语句,只能使用递归。 循环改递归 改为递归的关键是发现逻辑“...

  • python学习

    1:尾递归 解决递归调用栈溢出的方法是通过尾递归优化,事实上尾递归和循环的效果是一样的,所以,把循环看成是一种特殊...

  • 深究递归和迭代

    深究递归和迭代 使用场景: 需要重复地多次地计算相同的问题,一般会用到递归和循环。 递归: 概念:...

网友评论

      本文标题:递归和循环

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