1 条题解

  • 2
    @ 2024-4-27 14:55:03

    【题目大意】

    给出一个正整数n,输出一个由大写字母组成的n行n列的正方形图案,其中,第 1 行以大写字母 A开头,第 2 行以大写字母 B开头,以此类推;在每行中,第 2 列为第 1 列的下一个字母,第 3 列为第 2 列的下一个字母,以此类推;特别的,规定大写字母 Z 的下一个字母为大写字母 A。

    【考纲知识点】

    基本运算(一级), 循环结构、ASCII 码、数据类型转换(二级)

    【解题思路】

    1. 定义变量:正方形图案的行数和列数n。
    2. 内外循环各n次,从0开始是为了更方便地用i和j表示当前位置的字符。
    3. 在内循环中用A+i+j'A'+(i+j)%26表示当前位置的字符,当i+j>26(i+j)>26时需要对26取余,以保证字符范围在'A'~'Z'之内。
    4. 每次内循环结束之后说明输出完了一行的字符,输出一个endlendl换行符。

    【参考程序】

    #include <bits/stdc++.h>
    using namespace std;
    int n; 
    int main(){
        cin>>n;   //n表示正方形图案的行数和列数
        for (int i=0;i<n;i++){  
            for (int j=0;j<n;j++){
                cout<<char('A'+(i+j)%26);  //将每一个位置的字符表示出来,注意(i+j)>26的情况,再用char转换成字符类型输出
            }
            cout<<endl;
        }
        return 0;
    }
    
    • 1

    [GESP样题 二级] 画正方形

    信息

    ID
    553
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    249
    已通过
    63
    上传者