金字塔

金字塔

https://ac.nowcoder.com/acm/problem/22203

金字塔

前言

  • 一大早上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ヽ( ̄▽ ̄)ノ
每日一题 文章被收录于专栏

每天的题,为了牛币

全部评论
我们考了这套题目的。。。。
2 回复 分享
发布于 2020-11-06 08:01
大神,我感觉和你写的代码几乎一模一样,为啥我的显示格式错误啊,能帮我看看吗 #include<stdio.h> int main(){ int n=0; while(scanf("%d",&n)!=EOF){ for(int i=1;i<=n;i++) { for(int j=1;j<=n-1;j++) putchar(' '); for(int k=1;k<=2*i-1;k++) putchar('*'); for(int j=1;j<=n-1;j++) putchar(' '); puts(""); } } return 0; }</stdio.h>
点赞 回复 分享
发布于 2021-07-27 13:27

相关推荐

评论
5
收藏
分享
牛客网
牛客企业服务