牛客网——空心正方形图案

简介: 牛客网——空心正方形图案

前言


今天我们一起学习一下画空心正方形~

一、空心正方形


题目来源:

空心正方形图案_牛客题霸_牛客网

描述


KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。

输入描述:


多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。

输出描述:


针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。

二、解题思路


1.拆分法


观察图形结构,发现它可以分为两个部分,第一部分是,第一行和最后一行点满,中间的为第二部分,开头结尾各一个,中空。

代码如下:

#include<stdio.h>
int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        for(int i=0;i<n;i++){        //分行
            if(i==0||i==n-1){            //第一部分点满
                for(int j=1;j<=n;j++){
                    printf("* ");
                }
            }
                else {
                            for(int b=1;b<=n;b++){        //第二部分点开头结尾
                                if(b==1||b==n){
                                    printf("* ");
                                }
                                else{
                                    printf("  ");
                            }
                        }
                    }
            printf("\n");        //记得换行~
                }
        }
                return 0;
    }

2.整体法


代码如下(示例):

#include <stdio.h>
int main(){
    int n;
    while(scanf("%d", &n) != EOF){
        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= n; j++){
                if(i == 1 || i == n)
                    printf("* ");
                else if(j == 1 || j == n)
                    printf("* ");
                else
                    printf("  ");
            }
            printf("\n");
        }
    }
    return 0;
}

这种方法比较高级,不太容易看懂,可能拆分法更加通俗易懂。

总结


以上就是今天要讲的内容,本文仅仅简单介绍了两种画空心正方形的方法,希望对大家有帮助~

相关文章
|
5月前
LeetCode 223. 矩形面积
LeetCode 223. 矩形面积
24 0
|
3月前
|
存储 索引
每日一题——柱状图中最大的矩形
每日一题——柱状图中最大的矩形
|
8月前
wustojc5006菱形图案
wustojc5006菱形图案
21 0
|
3月前
leetcode-593:有效的正方形
leetcode-593:有效的正方形
17 0
|
3月前
leetcode-221:最大正方形
leetcode-221:最大正方形
25 0
LeetCode-593 有效的正方形
LeetCode-593 有效的正方形
|
10月前
形图案(牛客)
形图案(牛客)
|
11月前
空心三角 + 冒泡法
空心三角 + 冒泡法
29 0
LeetCode 221. 最大正方形
LeetCode 221. 最大正方形
57 0
LeetCode 221. 最大正方形
138.正方形螺旋拼块图案
138.正方形螺旋拼块图案
52 0