汉诺塔问题
为什么必须要用num-1,不能是--num。用--num就会报错。
这是js写的,用c一样报错。
function hanoi(num,A,B,C)
{
if (num == 1)
{
console.log(A+"------>"+C);
}
else
{
hanoi(--num,A,C,B);
console.log(A+"------>"+C);
hanoi(--num,B,A,C);
}
}
hanoi(3,'A','B','C'); 这是C的代码
#include <stdio.h>
void hanoi(int n,char A,char B,char C);
void hanoi(int n,char A,char B,char C)
{
static int i = 0;
if(n==1)
{
printf("%c -----> %c\n",A,C);
}
else
{
hanoi(--n,A,C,B);
printf("%c -----> %c\n",A,C);
hanoi(--n,B,A,C);
}
}
int main(void)
{
int n;
printf("请输入汉娜塔的层数:\n");
scanf("%d",&n);
hanoi(n, 'A','B','C');
return 0; --num本身变了啊等于 num= num-1 ;
num-1并没有赋值
页:
[1]