考研代码题: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;
}
相关推荐
大雪深埋08542 天前
5.19本日总结
考研
大雪深埋08543 天前
5.18本日总结
考研
lwewan4 天前
26考研408目录汇总~
笔记·考研
黄暄5 天前
初识计算机网络。计算机网络基本概念,分类,性能指标
笔记·学习·计算机网络·考研
小林学习编程5 天前
Springboot考研信息平台
spring boot·后端·考研
LVerrrr6 天前
Missashe考研日记—Day37-Day43
学习·考研
岑梓铭6 天前
考研408《计算机组成原理》复习笔记,第二章(2)数值数据的表示(浮点数篇)
笔记·考研·408·计算机组成原理
weixin_525936338 天前
考研复习全年规划
考研·学习方法·学习路线
熊峰峰8 天前
3.5 统计初步
考研·概率论
lwewan8 天前
26考研——中央处理器_指令执行过程(5)
笔记·考研