1 条题解

  • 0
    @ 2025-10-23 16:46:19

    思路分析

    1. 任务拆解:

    • 读取整数n
    • 输出n行对称数字金字塔
    • 每行由空格和对称数字序列组成
    • 处理超过9的数字转换为字母

    2. 关键点分析:

    • 每行的空格数量 = n - i
    • 每行数字序列分为两部分:递增序列(1到i)和递减序列(i-1到1)
    • 数字超过9时用字母表示(10→A,11→B,...)
    • 使用ASCII码转换:'A'的ASCII码是65

    3. 步骤规划:

    • 读取n的值
    • 外层循环控制打印n行
    • 内层第一个循环打印左侧空格
    • 内层第二个循环打印递增数字序列(处理数字转字母)
    • 内层第三个循环打印递减数字序列(处理数字转字母)
    • 每行结束后换行

    4. 代码对应:

    • int n;cin>>n; → 读取整数n
    • for(int i=1;i<=n;i++) → 外层循环控制行数
    • for(int j=1;j<=n-i;j++) → 打印每行前面的空格
    • 第一个内层循环for(int j=1;j<=i;j++) → 打印递增序列
    • if(j>9) cout<<char(64+(j-9)) → 数字转字母(10→A)
    • else cout<<j → 输出1-9的数字
    • 第二个内层循环for(int j=i-1;j>=1;j--) → 打印递减序列
    • cout<<endl; → 换行到下一行
    • 1

    信息

    ID
    1314
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    (无)
    递交数
    333
    已通过
    134
    上传者