【问题描述】
编程打印用数字构成的菱形图案,菱形上半部分的行数n( 1<n<10 )从键盘输入,总行数为2n-1。图案的样式按下面的样例。
【输入形式】
从键盘输入包括中间一行在内的菱形上半部分的行数n ( 1<n<10 )。
【输出形式】
输出用数字构成的菱形图案,样式按下面的样例,其中各数字间用1个空格间隔,中间一行的起始数字1位于第1列。
【样例输入】
4
【样例输出】
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
//图案的前n行
for(int i=0;i<n;i++)
{
//第i+1行先输出n-(i+1)个空格
for(int j=0;j<n-i-1;j++)
cout << " ";
//之后每行由1开始递增打印,直到打印完i+1为止
for(int j=1;j<=i+1;j++)
cout << j << " ";
//然后再由i开始递减打印,直到打印完1为止
for(int j=i;j>=1;j--)
cout << j << " ";
//最后再输出n-(i+1)个空格
for(int j=0;j<n-i-1;j++)
cout << " ";
cout << endl;
}
//图案的后n-1行
for(int i=1;i<n;i++)
{
//后n-1行中的第i行,先输出i个空格
for(int j=1;j<=i;j++)
cout << " ";
//之后每行由1开始递增打印,直到打印完n-i为止
for(int j=1;j<=n-i;j++)
cout << j << " ";
//然后再由n-i-1开始递减打印,直到打印完1为止
for(int j=n-i-1;j>=1;j--)
cout << j << " ";
//最后再打印i个空格
for(int j=1;j<=i;j++)
cout << " ";
cout << endl;
}
}