#include <iostream> #include <iomanip> using namespace std; int main(int argc, char* args[]) { //便于窗体显示 system("mode con cols=128 lines=32"); int nLine; //cin >> nLine; //test nLine = 11; int* arrLineRecord = new int[nLine + 1](); const int nBaseYangValue = 1; //行数 for (int i = 1; i <= nLine; i++) { //格式化:) cout << right << setw(4 * (nLine - i + 1)) << " "; int indexCurrentNewValue = 0; //列数 for (int index = 1; index <= i; index++) { //取出上一行的 当前索引 值 int indexCurrentValue = arrLineRecord[index]; //取出上一行的 当前前一索引 值 int indexBeforeValue = arrLineRecord[index - 1]; //还原上一次 新的当前索引值 arrLineRecord[index - 1] = indexCurrentNewValue; //新的当前索引值 indexCurrentNewValue = indexBeforeValue + indexCurrentValue; //杨辉三角基值 indexCurrentNewValue = indexCurrentNewValue == 0 ? nBaseYangValue : indexCurrentNewValue; //输出新的当前索引值 cout << right << setw(8) << indexCurrentNewValue; //结束 if (index == i) arrLineRecord[index] = indexCurrentNewValue; } //换行 cout << endl; } delete[] arrLineRecord; system("pause"); return 0; }