#include <iostream>
using namespace std;
int main()
{
int N;
cin >> N;
int x = 1, y;
for (int i = 0; i < N; ++i)
{
y = x;
for (int j = 0; j < N - i; ++j)
{
cout << y << ' ';
y += (i + 2 + j);
}
x += (i + 1);
cout << endl;
}
return 0;
}
找下规律就好,观察数字之间关系
#include <iostream>
using namespace std;
void snakeLikeMat(int** a, int n)
{
int num = 1;
int total = n * n;
for (int i = 0; i < n; i++)
{
for (int j = 0; j <= i; j++)
{
if (i % 2 == 0)
{
a[j][i - j] = num++;
}
else
{
a[i - j][j] = num++;
}
}
}
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j <= i; j++)
{
if (i % 2 == 0)
{
a[n - 1 - j][n - 1 - i + j] = total--;
}
else
{
a[n - 1 - i + j][n - 1 - j] = total--;
}
}
}
}
int main()
{
int ha = 0;
cin >> ha;
int** a = new int* [ha];
for (int i = 0; i < ha; i++)
{
a[i] = new int[ha];
}
snakeLikeMat(a, ha);
for (int i = 0; i < ha; i++)
{
for (int j = 0; j < ha-i; j++)
{
cout << a[j][i] << "\t";
}
cout << endl;
}
for (int i = 0; i < ha; i++)
{
delete[] a[i];
}
delete[] a;
return 0;
}