菱形图案

菱形图案

http://www.nowcoder.com/questionTerminal/8b935f8ffe99445dbd42494febd13e45

分析:

根据之前练习的金字塔图案,可以利用正向打印和翻转打印金字塔的代码稍微修改即可完成菱形图案的输出。
参考链接:
金字塔https://blog.nowcoder.net/n/86a42f259a0f44d6836d173a05e65141
翻转金字塔https://blog.nowcoder.net/n/4e91918d86ab4d5692583f8ceda54013
需要注意的是初始打印空格为n,后续再对应自增即可。

题解:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n = 0;
    while(scanf("%d", &n) != EOF) {
        //scanf("%d", &n);
        int space = n;
        for(int i = 1; i <= n; ++i) {
            for(int j = 0; j < space; ++j)
                printf(" ");
            int count = i+i-1;
            bool flag = true;
            for(int k = 0; k < count; ++k){
                if(flag) {
                    printf("*");
                    if(k == count-1)
                        printf(" ");
                }
                else
                    printf(" ");
                flag = !flag;
            }
            printf("\n");
            space--;
        }

        for(int i = n+1; i > 0; --i) {
            for(int j = 0; j < space; ++j)
                printf(" ");
            int count = i + i -1;
            bool flag = true;
            for(int k = 0; k < count; ++k){
                if(flag) {
                    printf("*");
                    if(k == count-1)
                        printf(" ");
                }
                else
                    printf(" ");
                flag = !flag;
            }
            printf("\n");
            space++;
        }
    }
    return 0;
}

总结:

复杂图案的打印,灵活应用之前的题解思路修改即可。

全部评论

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务