题目来源
题目描述
题目解析
#include<bits/stdc++.h>
#include <iostream>
using namespace std;
class Solution {
public:
int solve(int n)
{
if(n == 1){
}
int currVal = 1;
std::vector<std::vector<int>> nums (n + 1, std::vector<int>());
for (int row = 1; row <= n; ++row) { // 第几行
if(row % 2 == 1){
for (int i = 0; i < row; ++i) { // 1行一个数字
nums[row].push_back(currVal++);
}
}else{
for (int i = 0; i < row; ++i) {
nums[row].insert(nums[row].begin(), currVal++);
}
}
}
std::string strAns;
int blackNum = 0;
for (int k = nums.size() - 1; k >= 1; --k) {
auto num = nums[k];
std::ostringstream os;
std::string curr(blackNum, ' ');
os << curr;
for (int i = 0; i < num.size(); ++i) {
os << std::left << setfill('*') <<setw(4) << num[i];
if(i != num.size() - 1){
os << " ";
}
}
os <<"\n";
strAns = os.str() + strAns;
blackNum += 4;
}
std::cout << strAns;
}
};
int main()
{
Solution obj;
obj.solve(15);
}
效果: