首先介绍我们要先明白这个算法的原理:
1、如果有n行,那么第一行前面就需要 n-1 个空格来进行填充(后面的空格可以不用管)。
2、每一行中的数字都是左右对称的打印的。
下面介绍两种实现方法, 希望对你能有帮助。
第一种最简单的写法,便于初学者进行理解,就是直接进行打印:
void printfA()
{
//打印出4行
cout << " 1\n";
cout <<" 121\n";
cout <<" 12321\n";
cout <<"1234321\n";
}
第二种方法,是可以控制打印行数的:
void printfB()
{
//输入想要打印的行数
int iCount = 0;
cout << string("Input the iCount = ");
cin >> iCount;
//打印金字塔型数字
for(int i = 1; i<= iCount; ++i)
{
//打印空格
for(int j = 1; j<=iCount - i; ++j)
{
cout << string(" ");
}
//打印数字前半部分
for (int k = 1; k <= i; ++k)
{
cout << k ;
}
//打印数字后半部分
for (int k = i-1; k >0 ; --k)
{
cout << k ;
}
cout << endl; //换行
}
}
演示效果如下:
当然, 除了以上介绍的两种方法外, 还有很多其他的方法来实现,建议有机会可以多看些编程的书籍了解下。
望采纳, 谢谢。