admin管理员组

文章数量:1794759

C语言实例:使用递归函数求斐波那契数列和阶乘

C语言实例:使用递归函数求斐波那契数列和阶乘

编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。 执行递归函数将反复调用其自身,每调用一次就进入新的一层,当最内层的函数执行完毕后,再一层一层地由里到外退出。 例1:使用递归函数求斐波那契数列 斐波那契数列可表示为:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*) 求数列第n项可以用递归函数,只有当"n=1"和"n=2"时函数结束;其他情况一直调用他本身。

代码:

#include <stdio.h> long get_num(int n) { if (n == 1 || n == 2) { return 1; } else { return get_num(n - 1) + get_num(n - 2); } } int main() { int n, i; printf("输入的斐波纳契数列项数:"); scanf_s("%d", &n); for (i = 1; i <= n; i++) { printf("%ld ", get_num(i)); } return 0; }

功能:在控制台上输入一个数,输出斐波那契数列第1项到第n项。

例2:使用递归函数求阶乘 阶乘的计算方法: 大于等于1 任何大于等于1 的自然数n 阶乘表示方法: n!= 1 * 2 * 3 * ··· * (n-1) n 或 n!=n * (n-1)! 0的阶乘 0!=1。 求阶乘可以用递归函数,只有当"n=0"和"n=1"时函数结束;其他情况一直调用他本身。 #include <stdio.h> long get_num(int n) { if (n == 0 || n == 1) { return 1; } else { return get_num(n - 1)* n; } } int main() { int n; printf("输入一个数:"); scanf_s("%d", &n); printf("%d的阶乘为%ld", n, get_num(n)); return 0; }

功能:在控制台上输入一个数,输出该数值的阶乘。

本文标签: 递归阶乘数列函数实例