金字塔

前言

  • 一大早上A了的第二道水题
    图片说明

分析

  • 针对一类模拟(我也很少打),可先判断题目中要求的最终结果,将抽象过程转化为实际朴素的过程,这个时候就不要考虑代码会码多长了,保持一颗清醒的头脑,理好思路
  • 要输出一个图形,会发现每一层'*'的数量与' '都是有一定规律的,那就照着这个规律,那他们分别输出即可

代码

#include<bits/stdc++.h>

using namespace std;

int n;

int main()
{
    while(scanf("%d",&n)!=EOF)
    {
        int len=2*n-1;
        for (int i=1;i<=n;i++)
        {
            int hav=2*i-1;
            int rem=(len-hav)/2;
            for (int j=1;j<=rem;j++) putchar(' ');
            for (int j=1;j<=hav;j++) putchar('*');
            for (int j=1;j<=rem;j++) putchar(' ');
            puts("");
        }
    }

    return 0;
}

彩蛋(没想到吧)

  • 给大家放一个题,有兴趣可以思考一下(有模拟解法)
    图片说明
  • 如果想知道解法是否正确就来私我,有全部数据oヽ( ̄▽ ̄)ノ