递归汉诺塔

#include  
#include  
#include  
using namespace std;  
int ans=0;  
void hanoi(int n,int a,int b,int c){  
    if(n==0){  
        printf("%d:%d->%d\n",a,b,c);ans++;  
        return;  
    }  
    hanoi(n-1,b,c,a);  
    printf("%d:%d->%d\n",a,b,c);ans++;  
    hanoi(n-1,b,a,c);  
}  
int main(){  
    int n;  
    scanf("%d",&n);  
    hanoi(n,1,2,3);  
    printf("%d\n",ans);  
    return 0;  
}  

你可能感兴趣的:(水题)