考研代码题:10.10 汉诺塔 爬楼梯 取球 猴子吃桃

汉诺塔

C语言 - 汉诺塔详解(最简单的方法,进来看看就懂)_汉诺塔c语言程序详解-CSDN博客

cpp 复制代码
#include <stdio.h>

void move(char begin,char end){
	printf("%c->%c\n",begin,end);
}
//begin开始杆,help辅助杆,end目的杆 
void honi(int n,char begin,char help,char end){
       if(n==1){
       	 move(begin,end);
	   }
	   else{
	   	//按照位置表示作用
		//1.开始杆2.辅助杆3. 目的杆
		//将上面的n-1个盘子借助目的杆(end)移动到辅助杆(help) 
	   	honi(n-1,begin,end,help);
	   	//将最下面第n个盘子移动到目的杆 
	   	move(begin,end);
	   	// 将现在在辅助杆子上n-1个盘子借助开始杆子移动到目的杆 
	   	honi(n-1,help,begin,end);
	   }
}

int main(){
	int n;
	scanf("%d",&n);
	char a = 'A',b = 'B',c = 'C';
	honi(n,a,b,c);
	return 0;
}
爬楼梯
cpp 复制代码
#include <stdio.h>


int stair(int n){
      if(n==1){
      	return 1;
	  }
	  else if(n==2){
	  	return 2;
	  } 
	  return stair(n-1)+stair(n-2); 
}

int main(){
	int n;
	scanf("%d",&n);
	printf("%d",stair(n));
	return 0;
}
取球问题

算法------取球问题(特殊球法)-CSDN博客

cpp 复制代码
#include <stdio.h>


int ball(int n,int m){
      if(n<m){
      	return 0;
	  }
	  //m==0,只有一种情况:都不取 
	  if(m==0) return 1;
	  if(n==m){
	  	return 1;
	  }
	  //设置一个特殊球,一个不选这个特殊球ball(n-1,m),一个选ball(n-1,m-1)
	  return ball(n-1,m)+ball(n-1,m-1); 
}

int main(){
	int n,m;
	scanf("%d %d",&n,&m);
	printf("%d",ball(n,m));
	return 0;
}
猴子吃桃

2、猴子吃桃问题。每天早上都吃了前一天剩下的一半零一个。_猴子吃桃子,每天吃桃子的一半零一个-CSDN博客

cpp 复制代码
#include <stdio.h>


int peach(int day,int n){
      if(day>=n){
      	return 1;
	  }
	  return (peach(day+1,n)+1)*2;
}

int main(){
	int n,day;
	scanf("%d",&n); 
	printf("%d",peach(1,n));
	return 0;
}
相关推荐
图先1 小时前
概率论—随机事件与概率
考研
jinmo_C++1 天前
2020年_408统考_数据结构41题
数据结构·c++·考研
没书读了2 天前
考研复习-计算机网络-第二章-物理层
计算机网络·考研
郝YH是人间理想2 天前
408考研——单链表代码题常见套路总结
c语言·数据结构·c++·考研·链表
荔枝味啊~2 天前
【无标题】
考研
图先2 天前
线性代数第一讲—向量组
考研
Molder6214 天前
【计算机408计算机网络】第四章:自底向上五层模型之网络层
网络·笔记·后端·计算机网络·考研
热血的柯基破防了7 天前
数据结构—第五章 树与二叉树
数据结构·考研
Molder6217 天前
【计算机408计算机网络】第三章:自底向上五层模型之数据链路层
网络·笔记·计算机网络·考研
没书读了9 天前
考研复习-操作系统-第三章-内存管理
考研