202112 青少年等级考试C/C++真题三级 建议答题时长:60min
1. 编程题

分形盒

分形,通常被定义为一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状,即具有自相似的性质。它跟分数维、自组织、非线性系统和混沌等具有非常重要的联系。

分形盒就是这样一种分形,它的定义如下:

维度是1的分形盒:

X

维度是2的分形盒:

X  X

  X

X  X

如果已知维度是(n-1)的分形盒,那么维度是n的分形盒的递归定义如下所示:

Box(n-1)               Box(n-1)

              Box(n-1)

Box(n-1)               Box(n-1)   

你的任务是画一个维度为n的分形盒。

时间限制:1000

内存限制:65536

输入

输入包含多组测试数据。每一行包含一个正整数n表示分形盒的维度,n不大于7;最后一行是一个-1,表示输入结束。

输出

对于每组测试数据,输出要求维度的分形盒,注意X为大写字母。每组测试数据之后包含一行,改行只包含一个破折号。

 

样例输入

1

2

3

4

-1

样例输出

X

-

X X

 X

X X

-

X X   X X

 X     X

X X   X X

   X X

    X

   X X

X X   X X

 X     X

X X   X X

-

X X   X X         X X   X X

 X     X           X     X

X X   X X         X X   X X

   X X               X X

    X                 X

   X X               X X

X X   X X         X X   X X

 X     X           X     X

X X   X X         X X   X X

         X X   X X

          X     X

         X X   X X

            X X

             X

            X X

         X X   X X

          X     X

         X X   X X

X X   X X         X X   X X

 X     X           X     X

X X   X X         X X   X X

   X X               X X

    X                 X

   X X               X X

X X   X X         X X   X X

 X     X           X     X

X X   X X         X X   X X

-

查看答案
2. 编程题

拨钟问题

有9个时钟,排成一个3*3的矩阵。

现在需要用最少的移动,将9个时钟的指针都拨到12点的位置。共允许有9种不同的移动。如下表所示,每个移动会将若干个时钟的指针沿顺时针方向拨动90度。

移动 影响的时钟

1 ABDE

2 ABC

3 BCEF

4 ADG

5 BDEFH

6 CFI

7 DEGH

8 GHI

9 EFHI

输入格式

9个整数,表示各时钟指针的起始位置,相邻两个整数之间用单个空格隔开。其中,0=12点、1=3点、2=6点、3=9点。

输出格式

输出一个最短的移动序列,使得9个时钟的指针都指向12点。按照移动的序号从小到大输出结果。相邻两个整数之间用单个空格隔开。(数据保证答案唯一)

 

样例输入

3 3 0 

2 2 2 

2 1 2

样例输出

4 5 8 9

查看答案
3. 编程题

吃糖果

名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N=1,则名名第1天就吃掉它,共有1种方案;如果N=2,则名名可以第1天吃1块,第2天吃1块,也可以第1天吃2块,共有2种方案;如果N=3,则名名第1天可以吃1块,剩2块,也可以第1天吃2块剩1块,所以名名共有2+1=3种方案;如果N=4,则名名可以第1天吃1块,剩3块,也可以第1天吃2块,剩2块,共有3+2=5种方案。现在给定N,请你写程序求出名名吃巧克力的方案数目。

时间限制:1000

内存限制:65536

输入

输入只有1行,即整数N。

输出

输出只有1行,即名名吃巧克力的方案数。

 

样例输入

4

样例输出

5

查看答案
4. 编程题

子串计算

给出一个只包含0和1的字符串(长度在1到100之间),求其每一个子串出现的次数。

时间限制:1000

内存限制:65536

输入

一行,一个01字符串。

输出

对所有出现次数在1次以上的子串,输出该子串及出现次数,中间用单个空格隔开。按子串的字典序从小到大依次输出,每行一个。

 

样例输入

10101

样例输出

0 2

01 2

1 3

10 2

101 2

查看答案
5. 编程题

我家的门牌号

我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。

若所有的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。

数据保证有唯一解。

时间限制:1000

内存限制:65536

输入

一个正整数n。n < 100000。

输出

一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。

 

样例输入

100

样例输出

10 15

查看答案
试题目录
编程题
1 2 3 4 5
赣ICP备20007335号-2