!{*(O^O)*}! 2025-02-13 17:18 采纳率: 88.5%
浏览 3
已结题

仙人球的残影 时间限制:C/C++ 1000MS 内存限制:C/C++ 256MB

仙人球的残影
时间限制:C/C++ 1000MS
内存限制:C/C++ 256MB

描述

仙人球的跑步速度很快,它跑步时总是喜欢从一点出发,经过3次转折(每次向右转90度),回到出发点,而且每次转折前总是跑相同长度的路程,所以很多人都想知道如果用1算他跑步出发的第一个残影的话,那么回到起点的时候,他的残影是怎么样的呢?

输入描述

一行,为一个数N(2≤n≤10)(以0结尾,0不做处理),即仙人球在没有回到起点的时候,跑过留下N个残影后突然90度右转。

输出描述

每个残影的计数位长度为3个字符长度。

样例输入 1

4
样例输出 1

1 2 3 4
12 5
11 6
10 9 8 7
提示

【数据规模与约定】
对于100%的数据,2≤n≤10。

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2025-02-13 17:33
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    ## 问题分析 仙人球的跑步运动形成了一种特定的规律。在每次跑步时,它都按照一个方向的长度 \(N\) 跑步,同时在每次转弯时向右转90度。在此过程中会在每个位置留下一个残影,我们的任务是计算出所有残影的编号并将其以特定的格式输出。

    输入输出要求

    1. 输入: 一行,一个整数 (N)(2 ≤ (N) ≤ 10),以0结尾(0不做处理)。
    2. 输出: 每个残影的计数位长度为3个字符宽度,剩余的部分需要用空格填充。

    运动路径示意

    假设仙人球从原点出发,运动的路径为(R表示右转,U表示向上,D表示向下,L表示向左):

    N=4 时路径图示(每个位置代表残影编号):
            1  2  3  4
                5
                6
            7  8  9 10
           11 12 13 14
    

    这个路径可以通过顺序描绘出来: 1. 向上走 (N),记下4个位置。 2. 右转,向右走 (N),记下4个位置。 3. 再次右转,向下走 (N),记下4个位置。 4. 最后右转,向左走 (N),记下4个位置,回到起点。

    代码实现

    以下是Python代码实现此功能:

    def print_cactus_trace(N):
        # 创建一个 N* (N+1) 的空矩阵来存储残影编号
        grid_size = N * 2 + 1
        grid = [['   ' for _ in range(grid_size)] for _ in range(grid_size)]
        
        # 计算起始点
        start_x = start_y = N  # 中心点
        directions = [(0, 1), (1, 0), (0, -1), (-1, 0)]  # 右、下、左、上
        num = 1
        
        for i in range(4):  # 4段运动
            dx, dy = directions[i]
            for j in range(N):
                grid[start_x][start_y] = f"{num:3d}"  # 格式化输出
                num += 1
                start_x += dx
                start_y += dy
        # 格式化输出
        for row in grid:
            print(''.join(row))
    # 输入处理
    while True:
        N = int(input())
        if N == 0:
            break
        print_cactus_trace(N)
    

    解释代码

    1. 输入处理:

      • 不断读取用户输入,直到输入0为止。
    2. 矩阵生成:

      • 创建一个 grid_size × grid_size 的矩阵,用以记录每个残影的位置。
    3. 路径模拟及编号:
      • 初始化方向和起点,按照规定的方向和步长模拟仙人球的运动。
    4. 输出:
      • 遍历矩阵,格式化输出每一个残影的编号。

    使用示例

    在命令行中运行代码,输入有效的(N)值,例如 4,将会输出仙人球运动后的全貌。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月21日
  • 已采纳回答 2月13日
  • 创建了问题 2月13日