考研代码题: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;
}
相关推荐
in12345lllp3 天前
广告学考研白热化突围:AI证书成上岸关键加分项
人工智能·考研
CS创新实验室3 天前
《计算机网络》深入学:随机访问
网络·计算机网络·考研·408·随机访问
CS创新实验室4 天前
《计算机网络》深入学:信道划分
计算机网络·考研·408·信道划分
tobias.b4 天前
408真题解析-2009-27-操作系统-段式管理
考研·408考研·408真题解析
你要飞5 天前
考研线代第五课:特征值基础与相似对角化
笔记·线性代数·考研·矩阵
CS创新实验室5 天前
计算机专业考研复试全解析:流程、内容与策略
考研·408·复试
CS创新实验室6 天前
《计算机网络》深入学:流量控制与可靠传输
计算机网络·考研·计算机·408
你要飞6 天前
考研线代第四课:线性方程组
笔记·线性代数·考研·矩阵
2501_901147837 天前
环形房屋打家劫舍算法
考研·算法·leetcode·高考
2501_901147837 天前
单词拆分(Word Break)题解 | 动态规划解法
考研·算法·动态规划