给出递归算法的一个例子
递归算法是一种算法思想,主要解决已知序列初始部分的值f(0)~f(k),以及f(n+1)与f(n)~f(m)之间关系,求解f(x)的问题。
其中m-n 小于等于k 。
例如斐波纳契数列问题
已知 f(0) = 0,f(1) = 1, f(n + 1) = f(n - 1) + f(n - 2) (n>=2,n∈N*)
此时可得递归思想书写的算法函数
int f(unsigned int k)
{
if (k == 0)
return 0;
else if (k == 1)
return 1;
else
return f(k - 1) + f(k - 2);
}C语言如何用递归算法求1!+2!+3!+...n!
#include<stdio.h>
float fun(int n)
{
if(n==1) return 1;//如果n=1则直接返回1
return n*fun(n-1);//否则返回n*fun(n-1),以此计算n的阶乘,这条语句就是递归体
}
void main()
{
int i;
float sum=0;
for(i=1;i<=n;i++){
sum+=fun(i); //循环调用,用sum累计
}
printf("sum=%.2f
",sum);
}递归算法的是怎么回事?
和迭代差不多,只是通过定义和调用函数来实现迭代
把事情分解成相同的步骤重复执行直到符合某一条件时结束,再反过来递推到最初的状态,问题就解决了
比如定义(用的是C语言)
int fun(int a)
{
if(a==1) return 1;
else
{
a=a*fun(a-1);
return a;
}
}
在fun里面再定义fun,这个fun都只做一件事,把a的内容和fun(a-1)相乘作为返回值
这里要有个终止条件,即a=1时返回值为1,这样,如果我给最初的fun里的a赋值为5,第一步为5*fun(4),而执行fun(4)的结果为4*fun(3)....直到fun(2)=2*fun(1)即fun(2)=2*1,再把fun(2)代回去,得fun(3)=3*2*1,最后倒推的结果为fun(5)=5*4*3*2*1,即这个递归函数实现了a的阶乘fun(a)=a!
够详细了吧,觉得好的话给我加分吧 ^_^递归算法的例子
c语言中递归的最经典应用是求两个数的最小公约数,代码如下:
int MinDivisor( int m, int n)
{
if(m%n==0)
return n;
else
return MinDivisor(n, m%n);
}c语言递归法
/*先输入n再输入r;
n不要超过30
程序列出所有组合情况,并且计数
样例输入:
4 3
样例输出:
1 2 3
2 2 4
3 3 4
4 3 4
*/
#include<stdio.h>
#define MAXN 31
int res[MAXN];
int N,M,count;
void outres()
{
int i;
count++;
printf("%d",count,res[1]);
for (i=2; i<=M; i++)
printf(" %d",res[i]);
printf("
");
}
bination(int no)
{
int i,k;
if (no>M)
outres();
else
{
k=res[no-1]+1;
for (i=k; i<=N-M+no; i++)
{
res[no]=i;
bination(no+1);
}
}
}
int main()
{
scanf("%d%d",&N,&M);
count = 0;
res[0]=0;
bination(1);
return 0;
}
青云互联怎么样?青云互联是一家成立于2020年6月的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。美国cn2弹性云主机限时8折起,可选1-20个IP,仅15元/月起,附8折优惠码使用!点击进入:青云互联官方网站地址青云互联优惠码:八折优惠码:ltY8sHMh (续费同价)青云互联活动方案:美国洛杉矶...
数脉科技六月优惠促销发布了!数脉科技对香港自营机房的香港服务器进行超低价促销,可选择30M、50M、100Mbps的优质bgp网络。更大带宽可在选购时选择同样享受优惠,目前仅提供HKBGP、阿里云产品,香港CN2、产品优惠码续费有效,仅限新购,每个客户可使用于一个订单。新客户可以立减400元,或者选择对应的机器用相应的优惠码,有需要的朋友可以尝试一下。点击进入:数脉科技官方网站地址数脉科技是一家成...
酷番云怎么样?酷番云就不讲太多了,介绍过很多次,老牌商家完事,最近有不少小伙伴,一直问我台湾VPS,比较难找好的商家,台湾VPS本来就比较少,也介绍了不少商家,线路都不是很好,有些需求支持Windows是比较少的,这里我们就给大家测评下 酷番云的台湾VPS,支持多个版本Linux和Windows操作系统,提供了CN2线路,并且还是原生IP,更惊喜的是提供的是无限流量。有需求的可以试试。可以看到回程...
递归法为你推荐
苹果退款苹果付费软件怎么退款provisionedwindows server 2012 R2系统中,哪种方法可以增加thin provisioned磁盘大小?scanf返回值scanf的返回值diskgenius免费版diskgenius免费版怎么用电子听诊器听诊器的构造及原理是……运行时错误1004excel 打开表格提示 运行是错误1004,本人不会用宏和VB,只是表格内数据显示不出来mapsourcemapsource下载gps后的航点、航迹怎么转换成mapgis格式?赵锡成上海交大有什么好玩的赵锡成赵锡成夫人简介数据管理制度求一份工时定量管理制度
域名主机 免费二级域名 国外vps xenvps 免费申请域名 花生壳域名贝锐 hostmonster namecheap 国外空间服务商 dropbox网盘 php免费空间 三拼域名 香港新世界中心 美国独立日 独立主机 网站加速 服务器硬件配置 netvigator 789电视剧网 rewritecond 更多