题解:洛谷 P1000 超级玛丽游戏

【题目来源】

洛谷:P1000 超级玛丽游戏 - 洛谷

【题目描述】

超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。

                ********
               ************
               ####.....
             #..##.....#....
             ###.......#####              ###            ###
                ...........               #...          #...
               ##*######                 #..#          #..#
            ####*******#####             #..#          #..#
           ...#***.****.*##....          #...          #...
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#.........#.#.........#.#.........#.#------------------
###########################################------------------
#......#....#......#....#......#....####################
##########################################    #----------
#...........##...........##...........#    #----------
##########################################    #----------
#...#......##...#......##...#......#    #----------
##########################################    ############

【输入】

【输出】

如描述

【核心思想】

  1. 问题分析:要求用字符画的形式输出超级玛丽游戏中的一个固定场景。这是一个纯输出任务,不涉及任何输入处理或算法逻辑。

  2. 算法选择

    • 直接输出:场景内容完全固定,使用 cout 逐行输出即可
  3. 关键步骤

    • 包含头文件#include <iostream> 引入输入输出流库
    • 使用命名空间using namespace std;
    • 逐行输出字符画:按照题目给定的图案,使用 cout 配合 endl 逐行输出
    • 保持格式一致:每行的空格、字符、对齐方式必须与题目描述完全一致
  4. 时间/空间复杂度

    • 时间复杂度:\(O(1)\),固定行数输出
    • 空间复杂度:\(O(1)\),无额外存储
  5. 固定内容输出的核心思想

    • 精确复制:ASCII 艺术画的每个字符(包括空格)都影响最终显示效果,必须逐字符精确复制
    • 换行控制:每行末尾使用 endl 确保正确换行
    • 无算法需求:此类问题仅考察基本语法和输出能力,不涉及任何数据结构或算法
    • 适用于字符画输出、固定格式打印类入门问题

【算法标签】

入门 #字符串入门

【代码详解】

#include <iostream>  // 包含标准输入输出流库
using namespace std; // 使用标准命名空间

/**
 * 主函数 - 程序入口
 * @return 程序执行状态码(0表示成功)
 */
int main()
{
    // 输出ASCII艺术字的上半部分(火箭头部和主体)
    cout << "                ********" << endl;          // 火箭顶部装饰
    cout << "               ************" << endl;      // 火箭顶部扩大部分
    cout << "               ####....." << endl;         // 火箭头部细节1
    cout << "             #..##.....#...." << endl;    // 火箭头部细节2
    cout << "             ###.......#####              ###            ###" << endl;  // 火箭主体开始部分

    // 输出火箭中部细节(包含对称图案)
    cout << "                ...........               #...          #..." << endl;      // 对称装饰1
    cout << "               ##*######                 #..#          #..#" << endl;      // 对称装饰2
    cout << "            ####*******#####             #..#          #..#" << endl;      // 对称装饰3
    cout << "           ...#***.****.*##....          #...          #..." << endl;       // 对称装饰4
    cout << "           ....**********##.....           ###            ###" << endl;        // 对称装饰5

    // 输出火箭尾部连接部分
    cout << "           ....****    *****...." << endl;  // 尾部过渡1
    cout << "             ####        ####" << endl;      // 尾部过渡2
    cout << "           ######        ######" << endl;   // 尾部过渡3

    // 输出发射台部分(大面积图案)
    cout << "##############################################################" << endl;  // 发射台顶部
    cout << "#.........#.#.........#.#.........#.#------------------" << endl;  // 发射台细节1
    cout << "###########################################------------------" << endl;   // 发射台细节2
    cout << "#......#....#......#....#......#....####################" << endl;   // 发射台细节3
    cout << "##########################################    #----------" << endl;       // 发射台细节4
    cout << "#...........##...........##...........#    #----------" << endl;       // 发射台细节5
    cout << "##########################################    #----------" << endl;       // 发射台细节6
    cout << "#...#......##...#......##...#......#    #----------" << endl;      // 发射台细节7
    cout << "##########################################    ############" << endl;       // 发射台底部

    return 0;  // 返回程序执行成功状态码
}

【运行结果】

                ********
               ************
               ####.....
             #..##.....#....
             ###.......#####              ###            ###
                ...........               #...          #...
               ##*######                 #..#          #..#
            ####*******#####             #..#          #..#
           ...#***.****.*##....          #...          #...
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#.........#.#.........#.#.........#.#------------------
###########################################------------------
#......#....#......#....#......#....####################
##########################################    #----------
#...........##...........##...........#    #----------
##########################################    #----------
#...#......##...#......##...#......#    #----------
##########################################    ############
posted @ 2026-08-05 15:44  团爸讲算法  阅读(33)  评论(0)    收藏  举报