10274 双层金字塔

题目描述

按照样例格式输出双层金字塔

输入格式

多个测试数据。每个测试数据输入一个整数

输出格式

输出双层金字塔

样例

输入样例1

2
5
输出样例1

 *
***
 *
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
数据范围与提示

参考答案:

#include<iostream>

using namespace std;

int main() {
    int n;
    // 持续读入多组数据的n
    while (cin >> n) {
        // 打印上层金字塔
        for (int i = 1; i <= n; ++i) {
            // 打印每一行前面的空格
            for (int j = 1; j <= n - i; ++j)
                cout << ' ';
            // 打印每一行的*
            for (int j = 1; j <= 2 * i - 1; ++j)
                cout << '*';
            cout << endl;
        }
        // 打印下层金字塔
        for (int i = n - 1; i >= 1; --i) {
            // 打印每一行前面的空格
            for (int j = 1; j <= n - i; ++j)
                cout << ' ';
            // 打印每一行的*
            for (int j = 1; j <= 2 * i - 1; ++j)
                cout << '*';
            cout << endl;
        }
    }
    return 0;
}

分类标签

[循环]

C++题解代码

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

int n;
bool a;


// The main procedure
int main() {
  a = true;
  while (!cin.eof()) {
    cin>>n;
    for (int j = 1; j <= n; j++) {
      if (a) {
        a = false;
      } else {
        cout<<'\n';
      }
      for (int k = 1; k <= (n-j); k++) {
        cout<<" ";
      }
      for (int m = 1; m < (j*2); m++) {
        cout<<"*";
      }
    }
    for (int j = 1; j < n; j++) {
      cout<<'\n';
      for (int k = 1; k <= j; k++) {
        cout<<" ";
      }
      for (int m = 1; m < ((n-j)*2); m++) {
        cout<<"*";
      }
    }
  }
  return 0;
}

Blockly题解代码图片