程序设计基础II-实验4-递归
关于PTA C语言递归的练习
救救孩子√
知识需要积累,智慧需要沉淀,期待下次再见。
展开
-
7-8 第X大的数 (20 分)
题目描述:X最近爱上了区间查询问题,给出N (N <= 100000) 个数,然后进行M (M <= 50) 次询问,每次询问时,输入一个数X (1 <= X <= N),输出N个数中第X大的数。输入格式:首先输入一个整数N,代表有N个数,下面一行包含N个整数,用空格隔开。然后为一个整数M,代表有M次询问,下面的M行,每行一个整数X。输出格式:输出N个数中第X大的数。输入样例:41 2 2 341234输出样例:在这里给出相应的输出原创 2022-03-31 18:05:20 · 1318 阅读 · 1 评论 -
7-7 第k小的数 (20 分)
题目描述:现有一个包含n个整数(1<=n<=900000)的无序序列(保证序列内元素各不相同),输入一个整数k(1<=k<=n),请用较快的方式找出该序列的第k小数并输出。输入格式:第一行先输入两个整数,n和k。接下来是一行输入n个由空格分开的互不相同的整数num(1<=num<=90000000)。输出格式:输出该组数据中第k小的数num。样例输入样例:6 43 2 5 1 4 6输出样例:4...原创 2022-03-31 18:00:05 · 1282 阅读 · 0 评论 -
7-6 青蛙过河 (20 分)
题目描述:1)一条小溪尺寸不大,青蛙可以从左岸跳到右岸,在左岸有一石柱L,石柱L面积只容得下一只青蛙落脚,同样右岸也有一石柱R,石柱R面积也只容得下一只青蛙落脚。2)有一队青蛙从小到大编号:1,2,…,n。3)初始时:青蛙只能趴在左岸的石头 L 上,按编号一个落一个,小的落在大的上面-----不允许大的在小的上面。4)在小溪中有S个石柱、有y片荷叶。5)规定:溪中的每个石柱上如果有多只青蛙也是大在下、小在上,每个荷叶只允许一只青蛙落脚。6)对于右岸的石柱R,与左岸的石柱L一样允许多个原创 2022-03-30 22:49:20 · 1121 阅读 · 0 评论 -
7-5 喵帕斯之天才算数少女 (20 分)
题目描述:莲酱要上一年级了,但是老师给他出了一个特别难的算术题。老师给出了一个函数F(m, n)的定义是:若m=0,返回n+1。若m>0且n=0,返回F(m-1,1)。若m>0且n>0,返回F(m-1,F(m,n-1))。给出 m 和 n,计算 F(m, n) 的值。输入格式:第一行输入一个整数 t, 代表有 t 组数据。(1 <= t <= 15)每组数据输入一行,包含两个非负整数 m,n。(0 <= m <= 3, 0 &原创 2022-03-29 20:35:56 · 360 阅读 · 0 评论 -
7-4 全排列问题 (20 分)
题目描述:从n个不同元素任取m(m<=n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列,当m=n时所有的排列情况叫全排列。现输入n个递增的数,请你输出这n个数的全排列。全排列输出顺序如样例所示。输入格式:第一行先输入一个整数n(1<=n<=10)。接下来是一行输入n个由空格分开的互不相同的整数num (1 <= num <= 90000)。输出格式:对于每组数据,每一种排列占一行,各元素间用逗号隔开。输入样例:在这里原创 2022-03-29 20:10:46 · 1167 阅读 · 2 评论 -
7-3 汉诺塔 (20 分)
题目描述:汉诺塔(又称河内塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒A、B和C,A上面套着n个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从A棒搬到C棒上,规定可利用中间的一根B棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。僧侣们搬得汗流满面,可惜当n很大时这辈子恐怕就很搬完了。聪明的你还有计算机帮你完成,你能写一个程序帮助僧侣们完成这辈子的夙愿吗?输入格式:输入金片的个数n (1 <=原创 2022-03-29 20:06:37 · 1774 阅读 · 0 评论 -
7-2 神奇的函数 (20 分)
题目描述:神奇的函数是这样被定义的:F(n, m) = {if(n == 1 || m == 1)F(n, m) = 1;elseF(n, m) = F(n-1, m) + F(n, m-1);}输入格式:第一行是正整数N (1 <= N<= 30),表示有N组数据。接下来N行,每行两个整数n,m (1 <= n, m <= 10)。输出格式:输出N行。每行输出一个整数表示F(n,m)。...原创 2022-03-29 19:47:38 · 804 阅读 · 0 评论 -
7-1 计算组合数 (20 分)
题目描述:计算组合数。C(n,m),表示从n个数中选择m个的组合数。计算公式如下:若:m=0,C(n,m)=1否则, 若 n=1,C(n,m)=1否则,若m=n,C(n,m)=1否则 C(n,m) = C(n-1,m-1) + C(n-1,m)输入格式:第一行是正整数N (1 <= N<= 100),表示有N组要求的组合数。接下来N行,每行两个整数n,m (0 <= m <= n <= 20)。输出格式:输出N行。每行输出一个整数表示C(原创 2022-03-29 19:46:14 · 717 阅读 · 0 评论 -
6-2 二分查找 (20 分)
题目描述:本题要求实现一个二分查找函数。给出含有 n 个数的升序序列,保证序列中的数两两不相等,这n个数编号从1 到n。然后给出 q 次询问,每次询问给出一个数x,若x存在于此序列中,则输出其编号,否则输出-1。函数接口定义:int Binary_search(int array[], int l, int r, int x);其中array、l、r、x都是用户传入的参数。array是要进行查询的序列,保证序列有序且出现的数字均不重复;l和r是二分查找的区间的...原创 2022-03-29 19:30:15 · 2290 阅读 · 0 评论 -
6-1 数据结构实验之排序八:快速排序 (20 分)
题目描述:本题要求实现一个快速排序函数。 给定 N ( N<= 100000 ) 个 int 范围内的整数,要求用快速排序对数据进行升序排列。函数接口定义:void Quick_sort (int array[], int l, int r);其中 array[] 、 l 、r 都是用户传入的参数。 array[] 是需要排序的数组,数组长度不会超过100000; l 和 r 是需要进行排序的左端点和右端点。裁判测试程序样例:#include <stdio.h>原创 2022-03-28 22:25:38 · 2242 阅读 · 0 评论