【猜年龄】3岁比第1个大2岁比第2个大2岁比第3个大2岁比第4个大2岁age(4)+2age(3)+2age(2)+2age(1)+2第5个小朋友几岁?一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。递归调用定义:一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。递归函数调用定义:算法设计如下:1、编写求年龄的函数age;2、判断n=1时,返回值3;3、判断n≥2时,函数age调用age(n-1)+2;intage(intn)//求年龄函数{}if(n==1)return3;elsereturnage(n-1)+2;函数程序如下:4、编写主调函数,调用递归函数。main()//主函数{intfage;fage=age(5);printf(“第五个小朋友的年龄为%d岁\n",fage);}//递归函数调用自身一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。递归函数调用定义:源程序如下:调用过程如下:age(5)=age(4)+2age(3)+2age(2)+2age(1)+233+2=55+2=77+2=99+2=11语句编写intage(intn)//求年龄函数{}if(n==1)return3;main()//主函数{intfage;fage=age(5);printf(“第五个小朋友的年龄为%d岁\n",age);}运行结果第五个小朋友的年龄为11岁elsereturnage(n-1)+2;【汉诺塔游戏】有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求将所有圆盘移至C杆。移动的过程始终保持大盘在下,小盘在上的原则。ACBACB实例分析如下:1、AC【汉诺塔游戏】有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求将所有圆盘移至C杆。移动的过程始终保持大盘在下,小盘在上的原则。ACB实例分析如下:1、AB2、AC3、BC【汉诺塔游戏】有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求将所有圆盘移至C杆。移动的过程始终保持大盘在下,小盘在上的原则。ACB实例分析如下:1、AC2、AB3、CB4、AC5、BA6、BC7、AC2个盘子从AB2个盘子从BC【汉诺塔游戏】有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求将所有圆盘移至C杆。移动的过程始终保持大盘在下,小盘在上的原则。1、AC只有1个盘子时:2个盘子时:1、AB2、AC3、BC3个盘子时:1、AC2、AB3、CB4、AC5、BA6、BC7、AC函数源程序如下:语句编写voidhanoi(intn,charA,charB,charC){}if(n==1)printf("%c->%c\n",A,C);2个盘子从AB2个盘子从BC
汉诺塔问题与函数递归调用 来自淘豆网m.daumloan.com转载请标明出处.