第十二届蓝桥杯青少组11月选拔赛(STEMA)C++真题

2023年06月02日

编程题

第 1 题 问答题

求和

【题目描述】

输入一个正整数 N(N < 100),输出 1 到 N(包含 1 和 N)之间所有奇数的和。

【输入描述】

输入一个正整数 N(N < 100)

【输出描述】

输出 1 到 N 之间的所有奇数的和

【输入样例】

3

【输出样例】

4

第 2 题 问答题

求平方

【题目描述】

平方是一种运算,比如:a 的平方表示 a × a。

例如:2 的平方为 4(也就是 2*2 的积)

例如:4 的平方为 16(也就是 4*4 的积)

输入一个正整数 N(N < 30),输出 1 到 N(包含 1 和 N)之间所有正整数的平方,且所输出的平方数之间以英文逗号隔开。

【输入描述】

输入一个正整数 N(N < 30)

【输出描述】

输出所有正整数的平方数,以英文逗号隔开

【输入样例】

3

【输出样例】

1,4,9

第 3 题 问答题

数位递增数

【题目描述】

一个正整数如果任何一个数位小于等于右边相邻的数位,则称为一个数位递增数。

例如:

1135 是一个数位递增数

1024 不是一个数位递增数

输入一个正整数 n(11 < n < 10001),输出 11 到 n(包含11和n)中有多少个数位递增数。

例如:输入 15,11 到 15 之间的数位递增数有:11、12、13、14、15。一共有 5 个。

【输入描述】

输入一个正整数 n(11 < n < 10001)

【输出描述】

输出 11 到 n 中有多少个数位递增数

【输入样例】

15

【输出样例】

5

第 4 题 问答题

最短距离

【题目描述】

有一个居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为 1,2,3……,当排满一行时,从下一行相邻的楼往反方向排号。

例如:小区为 3 行 6 列,矩阵排列方式:

要求:已知小区楼房有 w 列及两个楼房楼号 m 和 n,求从 m 号楼到 n 号楼之间的最短路线经过几个楼(不能斜线方向移动)。

例如上图:当 w=6,m=8,n=2,从 8 号楼到 2 号楼最短的路线经过 5,4,3,2 四个楼(9,10,11,2 也经过四个楼),故最短路线为 4(注:不考虑路线只考虑最短路线经过几个楼)。

输入三个正整数 w(1 < w < 21),m(1 < m < 10001),n(1 < n < 10001),且 m 不等于n。三个正整数之间以一个空格隔开,输出m 到n的最短路线经过几个楼。

【输入描述】

在一行输入三个正整数 w,m,n,三个正整数之间以一个空格隔开

【输出描述】

输出 m 到 n 的最短路线经过几个楼

【输入样例】

6 8 2

【输出样例】

4

第 5 题 问答题

组合

【题目描述】

输入两个正整数 n 和 m(20 >= m >= n > 0),n 代表正整数的个数,要求 n 个正整数相加的和为 m,输出满足这个条件的正整数组合有多少。

例如:当 n=4,m=8 时,满足条件的有 5 组(也就是:5+1+1+1=8,4+2+1+1=8,3+3+1+1=8,3+2+2+1=8,2+2+2+2=8,每组组合都由 4 个正整数组成且 4 个正整数的和等于 8)

【输入描述】

分行输入 n 和 m(20>=m>=n>0)

【输出描述】

输出满足这个条件的正整数组合有多少

【输入样例】

4
8

【输出样例】

5