#include <stdio.h>
int sum(int n);//1+2+3+......+100的递归函数
void hanNoTa(int n,char A,char B,char C); //汉诺塔函数
int main(int argc, const char * argv[])
{
int Sum = sum(100);
printf("%d\n",Sum);
char zhu1 = 'A'; //定义柱子A
char zhu2 = 'B'; //定义柱子B
char zhu3 = 'C'; //定义柱子C
hanNoTa(3, zhu1, zhu2, zhu3);
return 0;
}
int sum(int n){
int Sum;
if (1 == n) {
Sum = 1;
}
else
Sum = n + sum(n-1);
return Sum;
}
void hanNoTa(int n,char A,char B,char C){ //第N个在A上的盘子借助B柱子移到C柱子上
if (1 == n) {
printf("将编号为%d的盘子从%c柱子移到%c柱子\n",n,A,C);
}
else{
hanNoTa(n-1,A,C,B);
printf("将编号为%d的盘子从%c柱子移到%c柱子\n",n,A,C);
hanNoTa(n-1, B,A,C);
}
汉诺塔递归演示
最新推荐文章于 2024-07-25 18:22:10 发布