重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、编写递归函数求 1+2+3+……+n 的和;
创新互联建站是一家集网站建设,阳朔企业网站建设,阳朔品牌网站建设,网站定制,阳朔网站建设报价,网络营销,网络优化,阳朔网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
2、编写递归函数求 2*4*6*……*(2n) 的积;
3、编写递归函数求 n 的阶乘;
4、汉诺塔问题;
实际上很多问题都可以通过递归来实现,但是看到你的情况估计较难告肆的你实弊晌现不了,所以给你几个简单的练习一下,这样可以增强对递归的理解,等理解的较袜卜轿为深入后再做稍微难一些的。
这个是山物镇递归函数:
recursion(int x,int y)
{
if(y-1 == x)return x;
else return x+recursion(x+1);
}
使用的时候用另蚂皮个逗粗函数调用。
举一个用递归调用函数求输入非负整数宏野的阶乘配银的例子,如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int fact(int n){
if(n==1 || n==0) return 1;
else return n*fact(n-1);
}
int main(void){
int x;
while(1){
printf("Input x(int 12=x=0)...\nx=");
蔽卖喊 if(scanf("%d",x),x=0 x=12)//x12时会使结果溢出
break;
printf("Error,redo: ");
}
printf("%d! = %d\n",x,fact(x));
return 0;
}
这是汉诺塔吧。
原理:(总共差岩掘n个盘子)
1、将第一个位置(起始位置)上的n-1个盘子移到第二个位置上,此时第一个位置只剩第n个盘子
2、将第一个枣虚位置上的最后一个盘子(第n个盘子)移到虚核第三个位置(目标位置)上,再将第二个位置上的n-1个盘子移到第三个位置上。
你不需要晓得n-1个盘子如何从一个位置移到另一个位置,让程序做。n--n-1--n-2......1,问题不断的小化,当n=1时,直接从第一个位置移到第三个位置,再倒过来推1--2--3......--n。最终问题就会被解决。
hanoi()函数就是将问题小化,使n--1
move()函数中char x是起始位置,char y是目标位置,即x--y.用A、B、C来显示盘子是如何移动的