C++汉诺塔

汉诺塔是有规则可以找出来的

#include"stdio.h"
int dg(int n);
void main(){
    
    
	int n;
	printf("有几个盘子n\n");
	scanf("%d",&n);
	printf("%d个盘子需要的步数为%d",n,dg(n)); 
} 
int dg(int n){
    
    //递归的函数 
	if(n==1){
    
    //一直调用直到到达递归边界,也就是最后一个明确值 
		return 1;
	}
	else{
    
    //一直递归如果前一个问题还是未知的就在此调用 
		return 2*dg(n-1)+1;
	}
}

猜你喜欢

转载自blog.csdn.net/dudadudadd/article/details/112464317