[C++程序设计]函数的递归调用

在调用一个函数的过程中又出现直接或间接地调用 该函数本身,称为函数的递归(recursive)调用.

包含递归调用的函数称为递归函数.

在实现递归时,在时间和空间上的开销比较大

求n!

 1 #include <iostream>
 2 using namespace std;
 3
 4 long func(int n);
 5
 6 int main()
 7 {
 8     long c;
 9     int x;
10     cout << "please enter a integer number:" << endl;
11     cin >> x;
12     c = func(x);
13     cout << x << "! = " << c << endl;
14     return 0;
15 }
16
17 long func(int n)
18 {
19     long c;
20     if (n < 0)
21         cout << "n < 0,data erroe" << endl; c = -1;
22
23     if(n == 0 || n == 1) c = 1;
24     else
25         c = func(n - 1) * n;
26     return c;
27 }

[C++程序设计]函数的递归调用

时间: 2024-10-10 08:06:26

[C++程序设计]函数的递归调用的相关文章

(转载)你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用

你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用 5.1.5 函数的递归调用 在函数调用中,通常我们都是在一个函数中调用另外一个函数,以此来完成其中的某部分功能.例如,我们在main()主函数中调用PowerSum()函数来计算两个数的平方和,而在PowerSum()函数中,又调用Power()函数和Add()函数来计算每个数的平方并将两个平方加和起来成为最终的结果.除此之外,在C++中还存在另外一种特殊的函数调用方式,那就是在一个函数内部调用它自己本身,这种方式也被

函数及递归调用介绍

java函数的基本结构 返回值类型 函数名(参数1,参数2){ 函数体 } 函数的四大部分:函数名,函数参数,函数体,返回类型 使用函数的好处 提高代码的复用性 便于程序分工协助开发 便于代码集中管理 /** * 写一个函数,产出多行* * @param n 打印n行* */ public static void printStar(int n,int m) { if(n>10000){return;} for(int i=0;i<n;i++) { for(int j=0;j<m;j++

你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用

5.1.5 函数的递归调用 在函数调用中,通常我们都是在一个函数中调用另外一个函数,以此来完成其中的某部分功能.例如,我们在main()主函数中调用PowerSum()函数来计算两个数的平方和,而在PowerSum()函数中,又调用Power()函数和Add()函数来计算每个数的平方并将两个平方加和起来成为最终的结果.除此之外,在C++中还存在另外一种特殊的函数调用方式,那就是在一个函数内部调用它自己本身,这种方式也被称为函数的递归调用. 函数的递归调用,实际上是实现函数的一种特殊方式.当递归函

Python函数中多类型传值和冗余参数及函数的递归调用

1.多类型传值和冗余参数 多类型传值: def fun(x,y): return x +y print fun(3,5) 8 print fun(*t) 3 def fun(x,y,z): return x + y + z t1 = (1,2,3) fun(*t1) 6 fun(*(2,4,5)) 11 fun(1,*t) 4 print t (1, 2) fun(x=1,y=3,z=5) 9 >>> dic = {'x':1,'y':3,'z':6} >>> fun(

函数的递归调用与二分法

一,什么是递归? 递归的作用可以完全取代循环,很多函数编程语言中习惯用递归来实现循环 1,递归算法: (1),'重复' ,凡是通过循环语句可以实现的,都可以用递归来实现 (2),'将问题分解成同类的子问题', 如持续循环的运算操作,持续循环的判断操作,他们的每次循环都是同样的一个'动作',这个动作就是一个子问题 2,函数的递归调用: 在调用一个函数的过程又直接或者间接的调用该函数本身,称之为递归调用. 递归必须满足两个条件: 1, 每进入下一次递归调用,问题的规模都应该有所减少 2, 递归必须有

函数的递归调用

递归调用即在定义函数的时候,在函数内部再调用自己,也就是函数自己调用自己,通常用于计算阶乘 注意一点的是,如果函数一直调用自己,那就成了死循环了,因此我们通常会设一个条件,当条件为假时函数就终止了 In [15]: def factorial(n): ....: if n == 0: ....: return 1 ....: else: ....: return n + factorial(n-1) ....: In [16]: factorial(5) # 计算 5+4+3+2+1 Out[1

协程函数、递归调用

1.消费者生产者模型初级 2.获取指定目录下子目录与文件 3.递归调用 --消费者生产者模型初级 def eater(name): print('%s start to eat' %name ) while True: food = yield print('%s eat %s' %(name,food)) alex_g = eater('alex')#先获得生成器 next(alex_g)#触发函数使函数暂停到函数的yield alex_g.send('骨头')#给yield发送个值,使yie

C语言函数的递归调用

一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数.执行递归函数将反复调用其自身,每调用一次就进入新的一层. [示例]用递归计算 n!.阶乘 n! 的计算公式如下: 根据公式编程: long factorial(int n){ long result; if(n==0 || n==1){ result = 1; }else{ result = factorial(n-1) * n; // 递归调用 } return result; } 这是一个典型的递归函数.调用factoria

python程序设计——函数设计与调用

一.函数定义与调用 def 函数名([参数列表]): '''注释''' 函数体 # 输出小于n的斐波那契数 >>def fib(n): a,b=1,1 while a < n: print(a,end=' ') a,b=b,a+b print() >>fib(3) 1 1 2 二.形参与实参 在绝大多数情况下,在函数内部直接修改形参的值不会影响实参 def addOne(a): print(a) a+=1 print(a) >>a=3 >>addOne