大狸子


私信TA

用户名:dotcpp0608738

访问量:86

签 名:

等  级
排  名 4115
经  验 1767
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 常州大学
专  业

  自我简介:

TA的其他文章

简单for循环
浏览:50

解题思路:1、根据对称性,只看前n/2行即可

               2、发现奇数行和偶数行的规律

                奇数行i/2个*-,结尾i/2个-*   中间全是*

                 偶数行i/2个*-,结尾i/2个-* 中间全是-

参考代码:

#include <iostream>

using namespace std;

int n;

int main() {

    cin >> n;

    for (int i = 1; i <= n/2; i++) {

        if (i % 2 == 0) {

            for (int j = 0; j < i / 2; j++) {

                cout << "* ";

            }

            for (int j = 0; j < (n - 2*i); j++) {

                cout << " ";

            }

            for (int j = 0; j < i / 2; j++) {

                cout << " *";

            }

        }

        else {

            for (int j = 0; j < i / 2; j++) {

                cout << "* ";

            }

            for (int j = 0; j < (n - 2 * (i - 1)); j++) {

                cout << "*";

            }

            for (int j = 0; j < i / 2; j++) {

                cout << " *";

            }


        }

        cout << endl;

    }

    for (int i = n / 2; i > 0; i--) {

        if (i % 2 == 0) {

            for (int j = 0; j < i / 2; j++) {

                cout << "* ";

            }

            for (int j = 0; j < (n - 2 * i); j++) {

                cout << " ";

            }

            for (int j = 0; j < i / 2; j++) {

                cout << " *";

            }

        }

        else {

            for (int j = 0; j < i / 2; j++) {

                cout << "* ";

            }

            for (int j = 0; j < (n - 2 * (i - 1)); j++) {

                cout << "*";

            }

            for (int j = 0; j < i / 2; j++) {

                cout << " *";

            }


        }

        cout << endl;


    }


    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »