蓝桥杯集训题(C语言)

更新时间:2023-11-10 05:19:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

蓝桥杯集训题(C语言)

1.难度: 中

有个时候需要比较精确的算一个除法。 如果两个数,m n

输出结果,保证可以保留小数点后100位。 如 输入 1 8

输出 0.125 输入 19 7 输出

2.7142857142857(后一百位)

提示:用浮点型是行不通的想其他办法

2 难道:中 排列组合:

组合基本性质有: 1. C(m,n)=C(m-n,n) 2. C(0,n)=1

3. C(m,n+1)=C(m,n)+C(m-1,n); 4. C(1,n)=n

输入两个数x y(>0)表示C(x,y) 求c(x,y); 输入 3 6 输出 20

提示:建议运用递归思想,当m<=n/2时,用1进行化简。

3.难度:易

给出一个由O和X组成的串(长度为1~80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0.例如OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3

4.难度:易

输入n个单词,统计单词个数 输入

hello word 输出 2 输入

I love you 输出 3

5.难度:易

输入m n输出行n列的矩阵(规则在样例中) 输入 2 3 输出 1 4 5 2 3 6 输入 3 4

输出 1 6 7 12

2 5 8 11

3 4 9 10

6.难度:较难

排列(permutation)

用 1,2,3.....9组成3个三位数 abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.按照\

def ghi\的格式输出说有解。

7.难度:难

给出n和n个整数,和k(1<=k<=n) ,输出这些整数重小到大的第k个(例k=1时就是最小值)。n<=10^7;

提示:请先彻底掌握快速排序。本题看似简单,其实不然。最容易想到的方法是先排序,然后直接输出第k个数,但10^7的规模即使使用快速排序 (O(㏒n))的算法来说也较大。 可以在快速排序的“划分“结束后,数组A[p……r]被分成了A[p……q]和A[q+1……r],,则可以根据左边的元素个数q-p+1和k的大小关系只在左边或者右边递归求解。可以证明,在期望意义下,程序的时间复杂度为O(n).

8.难度:中

题目描述 Description

给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。 输入描述 Input Description 读入两个用空格隔开的正整数 输出描述 Output Description

输出A+B的值

样例输入 Sample Input 3 12

样例输出 Sample Output 15

数据范围及提示 Data Size & Hint 两个正整数的位数不超过500位

9.难度:较难

题目描述 Description

汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题。在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔。 游戏中的每一步规则如下:

1. 每一步只允许移动一个盘子(从一根柱子最上方到另一个柱子的最上方)

2. 移动的过程中,你必须保证大的盘子不能在小的盘子上方(小的可以放在大的上面,最大盘子下面不能有任何其他大小的盘子)

如对于n=3的情况,一个合法的移动序列式: 1 from A to C 2 from A to B 1 from C to B 3 from A to C 1 from B to A 2 from B to C 1 from A to C

给出一个数n,求出最少步数的移动序列 输入描述 Input Description 一个整数n

输出描述 Output Description

第一行一个整数k,代表是最少的移动步数。

接下来k行,每行一句话,N from X to Y,表示把N号盘从X柱移动到Y柱。X,Y属于{A,B,C} 样例输入 Sample Input 3

样例输出 Sample Output

7

1 from A to C 2 from A to B 1 from C to B 3 from A to C 1 from B to A 2 from B to C

1 from A to C

数据范围及提示 Data Size & Hint n<=10

本文来源:https://www.bwwdw.com/article/3u9v.html

Top