首页 > 编程知识 正文

C语言入门 什么是递归,程序员入门学什么语言

时间:2023-05-04 07:57:12 阅读:281925 作者:931

什么是递归?

递归就是自己调用自己,相当于循环;

- 直接递归调用

- 间接调用:通过其他**调用

#include<stdio.h>

#include<stdlib.h>

void doHello()

{

printf("Hello, World!n");

doHello();      //doHello函数自己调用自己!

}

int mai (void)

{

doHello(); // 调用doHello函数

return 0;

}

总结:递归解决基本问题,把原有复杂的问题变成简单问题。

 

递归计算阶乘:n!=1×2×3×...×n(5!=5*4*3*2*1)

#include<stdio.h>

#include<stdlib.h>

long factorial(int n)  //定义阶乘

{

  if (n == 0)

                 return 1;  //0 的阶乘等于 1

  else 

               return n*factorial(n-1); // factorial() 自己调用自己

}

int main()

{

int m;  //

long r; // 计算出的阶乘

printf("请输入m的值:n");

scanf("%dn",&m);

r = factorial(m);

printf("m的阶乘是:%dn",r);

return 0;

}

使用迭代(循环结构)-递归(选择结构)

递归的缺点是反复调用函数占用额外的空间!

使用迭代(循环计算阶乘):

#include<stdio.h>

#include<stdlib.h>

long iterative( int n )

{

int i;

long r = 1;

for(i = 1;i <= n;i++)

   r*=i //r= r*i

return r;

}

 

int main()

{

int m;  //

long r; // 计算出的阶乘

printf("请输入m的值:n");

scanf("%dn",&m);

r = iterative(m);  //函数调用

printf("m的阶乘是:%dn",r);

return 0;

}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。