新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
10年积累的成都做网站、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有铁东免费网站建设让你可以放心的选择与我们合作。
int fac(int n)
{if(n==0||n==1)return 1;
return n*fac(n-1);
}
int main()
{int n;
scanf("%d",n);
printf("%d\n",fac(n));
return 0;
}
这个是递归函数:
recursion(int x,int y)
{
if(y-1 == x)return x;
else return x+recursion(x+1);
}
使用的时候用另个函数调用。
#include
#include
/*求n的
阶乘
,递归,
分母
部分
*
结束条件为:1的阶乘=1
*
递归时,一定要有结束条件
*/
int
factorial
(n)
{
if(n==1)
//递归结束条件,1的阶乘为1
return
1;
else
return
n*factorial(n-1);
//n的阶乘为n乘以(n-1)!
}
int
main()
{
int
n,x;
size_t
i;
//i为
无符号整数
double
re=0;
printf("input
n
and
x:");
scanf("%d%d",n,x);
//输入n和x的值
for(i=1;i=2*n-1;i+=2)
{
/*pow函数求的是x的i次方,分母为
i的
阶乘。本部分可以优化,因为i的阶乘算出来了,所以i+2的阶乘就是i的阶乘*(i+1)*(i+2),不用重复来计算阶乘。自己可以试试*/
re
+=
pow(x,i)/factorial(i);
}
printf("\nn=%d\tx=%d\tresult=%f\n",n,x,re);//打印出
最后的结果
return
0;
}
1、编写递归函数求 1+2+3+……+n 的和;
2、编写递归函数求 2*4*6*……*(2n) 的积;
3、编写递归函数求 n 的阶乘;
4、汉诺塔问题;
实际上很多问题都可以通过递归来实现,但是看到你的情况估计较难的你实现不了,所以给你几个简单的练习一下,这样可以增强对递归的理解,等理解的较为深入后再做稍微难一些的。