建立和打印杨辉三角
2015-04-29 09:18
134 查看
杨辉三角的计算公式:a[i][j] = i! / (j! * (i-j)!)
公式说明:i(行数,从0开始),j(第i行的第j个元素,从0开始)
思路:先创建一个动态数组,然后赋值并打印即可。
存在问题:int** CreateYaHuiSanJiao(int col)二维指针未释放,不知函数结束后系统会不会自动释放?
公式说明:i(行数,从0开始),j(第i行的第j个元素,从0开始)
思路:先创建一个动态数组,然后赋值并打印即可。
存在问题:int** CreateYaHuiSanJiao(int col)二维指针未释放,不知函数结束后系统会不会自动释放?
#include <iostream> using namespace std; //求n的阶乘 int fn(int n) { if (0 == n) return 1; int result = 1; for (int i = 1; i <= n; ++i) result *= i; return result; } //创建n行的杨辉三角 int** CreateYaHuiSanJiao(int col) { //开辟二维数组并分配空间 int i,j; int** pa = new int*[col]; for (i = 0; i < col; ++i) pa[i] = new int[col]; //初始化 for ( i = 0; i < col; ++i) for ( j = 0; j < col; ++j) pa[i][j] = 0; for ( i = 0; i < col; ++i) for ( j = 0; j < i + 1; ++j) pa[i][j] = fn(i) / (fn(j) * fn((i-j))); //释放内存空间 //for (i = 0; i < col; ++i) // delete[] pa[i]; //delete[] pa; return pa; } //打空格 void pSpace(int n) { if (n <=0 ) return; cout << " "; --n; pSpace(n); } int main() { int** a = NULL; int col = 14; int i, j; a = CreateYaHuiSanJiao(col); //打印杨辉三角 for ( i = 0; i < col; ++i) { pSpace(col - i); for ( j = 0; j < col; ++j) { if (a[i][j] != 0) cout << a[i][j] << " "; } cout << endl; } return 0; }
相关文章推荐
- 打印杨辉三角,三角形,四边形
- 打印杨辉三角并对齐输出
- 单链表的建立,测长度,打印,删除,插入,逆置c++代码实例及运行结果
- 双链表的建立,测长度,打印,插入c++代码实例及运行结果
- java打印杨辉三角
- C:打印杨辉三角
- 队列的建立、杨辉三角
- Python 中使用 for、while 循环打印杨辉三角练习(列表索引练习)。
- 打印杨辉三角
- 打印杨辉三角
- 打印杨辉三角
- 打印出杨辉三角
- 杨辉三角的打印
- 打印出杨辉三角
- ArcGIS Server 9.2建立的web Application实现打印的一篇文章。
- 面试基础题系列(二)java 打印 ,杨辉三角
- 杨辉三角的打印
- 单链队列的建立,插入,删除,打印,销毁
- 郁闷,本来搞一下午想隆重推出“二维栈模拟打印杨辉三角滴”,无奈失败,缅怀一下
- 打印杨辉三角