您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
c语言数的阶乘与斐波那契数列的简单实现
发布时间:2021-04-21 21:12:45编辑:雪饮阅读()
数的阶乘与斐波那契数列在定义上是有一点相似的地方,大多人经常会混淆掉两个的概念。
那么这里在c语言中分别来实现下数的阶乘与斐波那契数列。
数的阶乘
数的阶乘例如4的阶乘:4x3x2x1,即最阶乘中最小阶不能是0
常常容易与斐波那契数列的概念混淆,需要记住斐波那契数列如:
0,1,1,2,3,5,8,13,21,34.。。。。。
那么这里要实现15的阶乘,则c语言具体实现如:
#include <stdio.h>
double factorial(unsigned int i)
{
if(i-1>1){
printf("%dx",i-1);
return i * factorial(i - 1);
}
else{
printf("%d",i-1);
return i * (i - 1);
}
}
int main()
{
int i = 15;
double product;
printf("%dx",i);
product=factorial(i);
printf("=%lf",product);
return 0;
}
这里主要是运用了递归的特性。
斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
那么这里我们用c语言,同样是用递归来实现下斐波那契数列,这里实现输出斐波那契数列的前10个数如:
#include <stdio.h>
int fibonaci(int i)
{
if(i == 0)
{
return 0;
}
if(i == 1)
{
return 1;
}
return fibonaci(i-1) + fibonaci(i-2);
}
int main()
{
int i;
int size=10;
for (i = 0; i < size; i++)
{
if(i==size-1){
printf("%d", fibonaci(i));
}
else{
printf("%d,", fibonaci(i));
}
}
return 0;
}
关键字词:c语言,阶乘,斐波那契