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

空心正方形图案

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++,打印完一行后输出换行, 新的一行打印字符重新计数

全部评论

相关推荐

02-14 12:40
门头沟学院 Java
程序员花海:1.面试要求必须Java笔试不一定 2.难度对等秋招 远超于日常实习是因为同一批次且转正很多 竞争压力大 3.第一个加点指标,上线了就把接口性能加上去 使用本地缓存这个不算亮点 只是技术选型,要把为什么采用这个和背后的思考写出来而不是单纯堆叠技术没意义 4.八股要一直看 很容易忘记 5.拼团交易这个老问题 堆积技术 另外建议你把奖项合并到教育背景 没必要拆出来放最后
我的简历长这样
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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