题解 | #空心正方形图案#

空心正方形图案

https://www.nowcoder.com/practice/72347ee949dc47399186ee183632f303

#include <iostream>
using namespace std;

int main() {
    int num = 0;
    while (cin >> num) {
        int count = 0;
        for (int a = 0; a < num; a++) {
            if (a == 0 || a == num - 1) {
                while (count < num) {
                    cout << "* ";
                    count++;
                }
                cout << endl;
                count = 0;
            } else {
                while (count < num) {
                    if (count == 0 || count == num - 1) {
                        cout << "* ";
                        count++;
                    } else {
                        cout << "  ";
                        count++;
                    }
                }
                cout << endl;
                count = 0;
            }
        }
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

首先我们声明 正方形的边长为num

因为是多组输入,所以使用while循环输入边长

声明count 当前行打印了几个字符

使用for循环 定义变量a 表示当前行 ,控制他一行一行打印 ,<num控制刚好打印num行

再用if语句判断 是否是首行或者尾行 如果是则一行全部打印*,count++ 记录当前打印了几个字符 ,一行打印完则换行,count字符打印次数重新计数,否 就执行else语句,打印其他行

else语句 首先用while控制当前行打第几个字符,来判断这一行打完没有,再用if判断 这是当前行的首尾字符 则打*,否,则跳到else输出“ ”空格,count++,打印完一行后输出换行, 新的一行打印字符重新计数

全部评论

相关推荐

叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
04-27 08:59
常州大学 Java
牛客139242382号:《两门以上汇编语言》
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务