空心正方形图案

空心正方形图案

http://www.nowcoder.com/questionTerminal/72347ee949dc47399186ee183632f303

分析:

根据多行输入的结果,特殊处理第一行和最后一行,对于中间的行的空格为2*n-3,然后打印首尾的星号即可。

题解:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n = 0;
    //循环读入n
    while(scanf("%d", &n) != EOF) {
        //外循环遍历每一行
        for(int i = 0; i < n; ++i) {
            //对第一行和最后一行特殊处理,输出n个星号
            if(i == 0 || i == n-1) {
                for(int j = 0; j < n; ++j) {
                    printf("* ");
                }
            } else { //中间行只要首尾输出星号,中间用空格填充即可
                printf("*");
                for(int j = 0; j < 2*n-3; ++j)
                    printf(" ");
                printf("* ");
            }
            //换行处理
            printf("\n");
        }
    }
    return 0;
}

总结:

复杂图案的输出,找出每一行规律,然后根据规律写成循环即可。

全部评论
为什么中间空格数是2n-3啊
点赞 回复 分享
发布于 2021-09-13 15:38

相关推荐

暴走萝莉莉:这是社招场吧,作为HR说个实话:这个维护关系的意思是要有政府资源,在曾经的工作中通过人脉资源拿下过大订单的意思。这个有相关管理经验,意思也是真的要有同岗位经验。应酬什么的对于业务成交来说就算不乐意也是常态,就是要求说话好听情商高,酒量好。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-15 14:22
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:28
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务