打印蛇形矩阵
来源:互联网 发布:wine源码 编辑:程序博客网 时间:2024/05/29 17:09
<pre name="code" class="cpp"><pre name="code" class="cpp"><pre name="code" class="cpp"><pre name="code" class="cpp">/*题目说明蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 样例输入5样例输出1 3 6 10 152 5 9 144 8 137 1211*///方法1 --此方法有点烂,/*思想:一行行打印;每行打印元素的个数为下列参数:n+1-i 找出每一行的第一个元素的规律:程序中的out0参数; 确定每一行第一个递增步进值。参数add_start 比如:第一行的第一个元素到第二个元素递增2 ; 第二行的第一个元素到第二个元素递增3; */void main(){int n;while(1){ cin>>n; getresult(n);}}void getresult(int n){int out,out0,m=0,add_start=0;for(int i=1;i<=n;i++){ //输出n行out=0;out0=0; //计算每行的第一个数for(int k=1;k<=i;k++) out0=out0+k-1;out0=out0+1; //计算每行的初始步进值 第一行从2开始加,第二行从3开始加,....add_start=i+1; //打印每行的数量和值for(m=1;m<=n+1-i;m++){//每行数量 n+1-i 个if(m==1){out=out0;cout<<out<<" ";}else if(m==2){ out=out0+add_start; cout<<out<<" ";} else{ out=out+add_start+m-2; cout<<out<<" ";}}cout<<endl;}}//方法2 --先把第一行数据计算出来,其他数据等于右上角数据减一;// 第一行数据的第n个元素值=1+2+3+...+n#define MAX 100 void main(){int n;while(1){cin>>n; getresult(n);}}void getresult(int n){ int out=0;int a[MAX][MAX]={0};//打印第一行数据for(int i=1;i<=n;i++){ out+=i; a[0][i-1]=out; cout<<out<<" ";}cout<<endl;//其余行数据for(int i=2;i<=n;i++){for(int j=0;j<n-i+1;j++){ a[i-1][j]=a[i-2][j+1]-1;//右上角数据减一;cout<<a[i-1][j]<<" ";}cout<<endl;}} //时间复杂度:n+n*(n/2)
0 0
- C++ 打印蛇形矩阵
- Java打印蛇形矩阵
- 打印输出蛇形矩阵
- 打印蛇形矩阵
- 打印蛇形矩阵
- 打印蛇形矩阵-题解
- [腾讯]打印蛇形矩阵
- 打印蛇形矩阵
- 打印蛇形矩阵
- 打印蛇形矩阵
- 打印蛇形矩阵
- 蛇形打印矩阵
- 打印蛇形矩阵
- 打印蛇形矩阵
- 打印蛇形矩阵
- 20.蛇形矩阵打印
- 不用数组打印蛇形矩阵
- (C#)打印蛇形正方形矩阵
- POJ2456
- 【9202】车厢重组
- React组件的生命周期
- 代码审计之SpringMVC框架的安全攻防问题研究
- mysql 日期操作 增减天数、时间转换、时间戳
- 打印蛇形矩阵
- 【旧代码整理】uri路由处理部分
- 面试题汇总
- apply函数处理数据的方式
- 私有网络地址
- POJ 3678 Katu Puzzle
- 2016夏季练习——二分
- 设备节点和设备堆栈
- 购物车与商城订单的关系以及技术实现深入分析