考研复试机试 | c++ | 王道复试班

news2024/9/28 9:33:22

目录

  • n的阶乘 (清华上机)
    • 题目描述
    • 代码
  • 汉诺塔问题
    • 题目:
    • 代码:
  • Fibonacci数列 (上交复试)
    • 题目
    • 代码:
  • 二叉树:
    • 题目:
    • 代码:

n的阶乘 (清华上机)

不敢相信这是清华上机

题目描述

输入一个整数n,输出n的阶乘

代码

递归写法:

#include <cstido>
Factorial(int n){
	if(n==1){
		return 1;
	}
	else{
	return Factorial(n-1)*n;
	}
} 

int main(){
	int n;
	scanf("%d",&n);
	printf("%d\n",Factorial(n));
}

循环写法

int main(){
	int n;
	int sum = 1;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		sum = sum*i;
	}
	printf("%d",sum);
}

汉诺塔问题

题目:

约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。
现在我们改变游戏的玩法,不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到下盘的上面。
Daisy已经做过原来的汉诺塔问题和汉诺塔II,但碰到这个问题时,她想了很久都不能解决,现在请你帮助她。现在有N个圆盘,她至少多少次移动才能把这些圆盘从最左边移到最右边?

Input
包含多组数据,每次输入一个N值(1<=N=35)。

Output
对于每组数据,输出移动最小的次数。

Sample Input
1
3
12

Sample Output
2
26
531440

在这里插入图片描述

代码:

#include <cstdio>
//现在有N个圆盘,她至少多少次移动才能把这些圆盘从最左边移到最右边?
long long hanoi(int n){
	if(n==1) return 2;
	else return 3*hanoi(n-1)+2;
}

int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		printf("%lld",hanoi(n));
	}
}

Fibonacci数列 (上交复试)

题目

描述
The Fibonacci Numbers{0,1,1,2,3,5,8,13,21,34,55…} are defined by the recurrence: F0=0 F1=1 Fn=Fn-1+Fn-2,n>=2 Write a program to calculate the Fibonacci Numbers.

输入描述:
Each case contains a number n and you are expected to calculate Fn.(0<=n<=30) 。

输出描述:
For each case, print a number Fn on a separate line,which means the nth Fibonacci Number.

示例1
输入:
1
输出:
1

代码:

#include <cstdio>

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


//斐波那契数列
int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		printf("%d\n",Fibonacci(n));
	}
} 

二叉树:

题目:

在这里插入图片描述

如上所示,由正整数1,2,3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。 比如,n = 12,m = 3那么上图中的结点13,14,15以及后面的结点都是不存在的,结点m所在子树中包括的结点有3,6,7,12,因此结点m的所在子树中共有4个结点。

输入描述:
输入数据包括多行,每行给出一组测试数据,包括两个整数m,n (1 <= m <= n <= 1000000000)。

输出描述:
对于每一组测试数据,输出一行,该行包含一个整数,给出结点m所在子树中包括的结点的数目。

示例1
输入:
3 12
0 0

输出:
4

分析:

  1. 首先:该树是一颗完全二叉树,若root节点是数字p,那么左节点是数字2p
    右节点是数字2p+1;
  2. 如果子树存在 tree(m) = tree(2m)+tree(2m+1);
    也就是说,该子树的节点数量= 左子树节点数量+右子树节点数量 +1(根节点)
  3. 如果子树根不存在,则tree(m)为0;

代码:

#include <cstdio>

// m表示当前节点  n表示节点总数 
int tree(int m,int n){
	// 如果当前节点的序号大于节点总数 
	if(m > n){
		return 0;
	}
	else{
		return 1+tree(2*m,n)+tree(2*m+1,n);
	}
}

int main(){
	int m,n;
	while(scanf("%d%d",&m,&n)!=EOF){
		if(m==0) break;
		printf("%d\n",tree(m,n));
	}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/366661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汽车电子社区交流宣传

http://t.csdn.cn/VSLO0http://t.csdn.cn/VSLO0 当今的汽车行业已经进入了数字化时代&#xff0c;汽车电子软件的开发变得越来越重要。在这个领域&#xff0c;开发者们需要应对各种挑战&#xff0c;包括复杂的硬件和软件交互、高效的嵌入式编程和安全性要求。为了帮助汽车电子…

Android Bluetooth(一)——蓝牙的开启和搜索

Android Bluetooth&#xff08;一&#xff09;——蓝牙的开启和搜索Android Bluetooth&#xff08;一&#xff09;——蓝牙的开启和搜索概览设置蓝牙蓝牙权限设置蓝牙查找设备查询已配对设备发现设备启用可检测性Android Bluetooth&#xff08;一&#xff09;——蓝牙的开启和搜…

Git系列——Git理论

概述Git 是一个开源的分布式版本控制系统&#xff0c; 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git没有中央版本库的概念&#xff0c;每个客户端都可成为版本库&#xff0c;内部采用全量方式对文件的每次提交建立快照并存储&#x…

探索开源:获取完整的 GitHub 社区数据集

本篇文章聊聊 GitHub 开放数据集的获取和整理&#xff0c;分享一些数据整理的细节技巧&#xff0c;以及一些相对粗浅的数据背后的事情。 写在前面 分析 GitHub 上的项目和开发者获取是深入、真实的了解开源世界演进的方法之一。 在 GHArchive 项目中&#xff0c;我们能够看到…

什么是知识库,内部知识库和外部知识库各有什么优势?

知识库的定义在互联网的整个历史中多次发生变化。起初&#xff0c;它是一个术语&#xff0c;用于描述比通用关系“数据库”更先进的任何复杂数据存储系统。现在&#xff0c;随着SaaS的出现&#xff0c;知识库一词的含义更加不同。根据定义&#xff0c;知识库是一个自助服务存储…

Java多线程(二)--线程相关内容

1.创建线程的几种方式继承 Thread 类&#xff1b;public class MyThread extends Thread { Override public void run() {System.out.println(Thread.currentThread().getName() " run()方法正在执行..."); }实现 Runnable 接口&#xff1b;public class MyRunnable…

Vue使用ECharts

Vue简介 Vue文档 vue是一款用于构建用户界面的JavaScript框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界面&#xff0c;Vue 都可以胜任。 ECharts简介 快…

Elasticsearch7.8.0版本进阶——近实时搜索

目录一、近实时搜索的概述1.1、按段&#xff08;per-segment&#xff09;搜索1.2、更轻量的方式搜索二、为什么Elasticsearch是 近 实时搜索三、如何解决索引了一个文档然后却没有搜到四、哪种情况不需要每秒刷新4.1、使用 Elasticsearch 索引大量的日志文件4.2、使用 Elastics…

说一下this,实现apply、call

理解this 在ES5中&#xff0c;this的指向始终坚持一个原理&#xff1a;“this永远指向最后调用它的那个对象”&#xff0c;切记这句话。下面看几个例子。 例一 var obj {name: zhangsan,say: function() {console.log(this.name);} }obj.say() // zhangsan 最基本的使用&am…

突破年薪百万难关!吃透这套Java真题合集

前言我相信大多 Java 开发的程序员或多或少经历过BAT一些大厂的面试&#xff0c;也清楚一线互联网大厂 Java 面试是有一定难度的&#xff0c;小编经历过多次面试&#xff0c;有满意的也有备受打击的。因此呢小编想把自己这么多次面试经历以及近期的面试真题来个汇总分析&#x…

【软考——系统架构师】架构、系分、软设的区别和联系

&#x1f50e;这里是【软考——系统架构师】&#xff0c;关注我考试轻松过线 &#x1f44d;如果对你有帮助&#xff0c;给博主一个免费的点赞以示鼓励 欢迎各位&#x1f50e;点赞&#x1f44d;评论收藏⭐️ 文章目录&#x1f440;三科相同点&#x1f440;三科不同点--上午题&am…

【Classical Network】EfficientNetV2

原文地址 原文代码 pytorch实现1 pytorch实现2 详细讲解 文章目录EfficientNet中存在的问题NAS 搜索EfficientNetV2 网络结构codeEfficientNet中存在的问题 训练图像尺寸大时&#xff0c;训练速度非常慢。train size 512, batch 24时&#xff0c;V100 out of memory在网络浅…

联想笔记本无法下载 Lenovo Vantage

状况 在 Microsoft Store 下载时发生错误&#xff0c;可能是如下代码&#xff1a;0x80070005, 0x80073D05, or 0x80070017. 解决方法 1.在“开始”菜单搜索栏中输入PowerShell 2.当Windows PowerShell出现在“开始”菜单中&#xff0c;右键点击此图标&#xff0c;然后选择以…

AWS攻略——使用中转网关(Transit Gateway)连接同区域(Region)VPC

文章目录环境准备创建VPC配置中转网关给每个VPC创建Transit Gateway专属挂载子网创建中转网关创建中转网关挂载修改VPC的路由验证创建业务Private子网创建可被外网访问的环境测试子网连通性Public子网到Private子网Private子网到Private子网知识点参考资料在《AWS攻略——Peeri…

I.MX6ULL_Linux_系统篇(18) uboot移植

原厂uboot 编译 uboot 的移植并不是说我们完完全全的从零开始将 uboot 移植到我们现在所使用的开发板或者开发平台上。这个对于我们来说基本是不可能的&#xff0c;这个工作一般是半导体厂商做的&#xff0c; 半导体厂商负责将 uboot 移植到他们的芯片上&#xff0c;因此半导体…

网易云音乐财报解读:收入大增亏损收窄,“云村”草长莺飞

独家版权时代结束后&#xff0c;在线音乐产业进入了新的发展阶段&#xff0c;各家音乐平台经营状况备受关注。 2月23日&#xff0c;网易云音乐公布了2022年全年财务业绩。财报显示&#xff0c;网易云音乐2022年全年收入为90亿元&#xff0c;较2021年同比增长28.5%。 值得一提的…

IDEA集成Git

1&#xff1a;IDEA集合Git1.1&#xff1a;配置Git忽略文件-IDEA特定文件问题 1:为什么要忽略他们&#xff1f;答&#xff1a; 与项目的实际功能无关&#xff0c; 不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异。问题 2&#xff1a;怎么忽略&#xff1f;1&a…

分布式锁zookeeper实现详解原理及落地方案

吐血推荐&#xff1a;最近整理之前面试BAT的材料&#xff0c;写了一份《Java面试BATJ通关手册》&#xff0c;覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。 领取方法&#xff1a; Java面试BATJ通关手册 介绍 当一个应用程序需要在分布式系统中对共…

cmake demo

工程描述 1&#xff0c;为工程添加一个子目录src&#xff0c;用来存储源代码; 2&#xff0c;添加一个子目录doc&#xff0c;用来存储这个工程的文档hello.txt 3&#xff0c;在工程目录添加文本文件COPYRIGHT, README&#xff1b; 4&#xff0c;在工程目录添加一个runhello.sh …

18_FreeRTOS任务通知

目录 任务通知的简介 任务通知值的更新方式 任务通知的优势 任务通知的劣势 任务通知值和通知状态 发送通知相关API函数 接收通知相关API函数 任务通知模拟信号量实验 任务通知模拟消息邮箱实验 任务通知模拟事件标志组实验 任务通知的简介 任务通知:用来通知任务的…