//给定一个整数n, 以下列方式打印n行:
//如果n = 4, 生成的阵列为
//1 * 2 * 3 * 4
//9 * 10 * 11 * 12
//13 * 14 * 15 * 16
//5 * 6 * 7 * 8
//每行只能输出数字和*,不能有空格
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main()
{
int n = 0;
cin >> n;
queue<int> q;
for (int i = 1; i <= n*n; i++)
q.push(i);//把1 2 3 .....n*n放到一个队列里面
vector <vector <int>> vv;
for (int i = 0; i < n; i++)
vv.push_back(vector<int>());//填充vv的大小为n
bool flag = true;
int x = 0, y = n - 1;
for (int i = 0; i < n; i++)
{
vector<int> v;
if (flag)
{
for (int i = 0; i < n; i++)
{
int t = q.front();
q.pop();
v.push_back(t);
}
vv[x] = v;
x++;
flag = false;
}
else
{
for (int i = 0; i < n; i++)//每一行的数据也是n个
{
int t = q.front();
q.pop();
v.push_back(t);
}
vv[y] = v;
y--;
flag = true;
}
}
for (int i = 0; i < n; i++)//打印输出vv
{
for (int j = 0; j < n - 1; j++)
{
cout << vv[i][j] << "*";
}
cout << vv[i][n - 1] << endl;
}
return 0;
}
squarePatternPrint
最新推荐文章于 2020-12-08 11:57:39 发布