C语言用一维数组打印杨辉三角(原:无意中想到)
2015-11-19 16:14
253 查看
//求前10行的数 1 int a[11] = { 1 }; a[0] = 1, a[1] = 1; int i, j,m; for (i = 2; i <= 11; i++) //2-11 输出10行 { for (j = i - 1; j > 1; j--) //关键在这句,倒着求 { a[j] = a[j] + a[j - 1]; printf("%5d", a[j]); } printf("%5d\n",a[0]); }
本来是a[j]=a[j]+a[j-1]
结果发现计算a[j+1]时,不行了,就想到了倒着来求,正好杨辉三角也是左右对称的,结果输出的意思是左右数颠倒的,然而左右对称,所以可行
//关键在这一句,倒着求,利用杨辉三角的对称性
相关文章推荐
- 二叉搜索树的查询、插入与删除操作(Binary Search Tree, Search, Insert, Delete)(C++)
- 程序的内存布局
- 获得当前登录系统的用户名
- c语言实现动态顺序表
- C语言笔试面试总结(网上搜集)
- C++实现含有中文字符串逆序
- c++虚函数实现机制及内存模型
- 简单分析C语言中指针数组与数组指针的区别
- C语言中的回调
- c++中switch语句的使用问题
- C语言中下标与指针的转换以及指向指针的指针的例子
- Composite(组合)设计模式
- 标准C++中的string类的用法总结
- C语言函数之可变参数原理:va_start、va_arg及va_end !!!!!!和printascii在kernel启动前的应用
- Gamma原理及快速实现算法(C/C++)(转)
- 学习C++ vector(摘录)
- 学习笔记6-C语言内存管理+构造类型
- VC++新建工程里面各项的含义
- Implicit declaration of function '' is invalid in C99.
- C C++ Intro - Address Substract