转呀转不晕矩阵
来源:互联网 发布:creis中指数据 app 编辑:程序博客网 时间:2024/05/16 08:35
Problem Description
众所周知,C语言的学习是我们程序设计基础的重点和主要内容。
或是高中、又或是初中,小金学会了使用杨辉三角,同时也了解杨辉三角的由来。他觉得杨辉三角是一个神奇的发现,从中可以发现很多很多神奇的规律。
杨辉三角既是多项式(a+b)^n展开之后的每个项的二次项系数规律,又是二项式系数在三角形中的一种几何排列。
本质特征: 两条斜边都是由数字1构成,而其余的数都是由他肩上的两个数字之和,如下表。
第1行: 1
第2行: 1 1
第3行: 1 2 1
第4行: 1 3 3 1
第5行: 1 4 6 4 1
第....行: .................
小金是一个好奇的孩子,他想知道一个n行的杨辉三角摆在一个矩阵中是什么样子的,又因为小金的脑子因为感冒烧坏了眼睛,看东西都是旋转的,所以他填数的时候是不断旋转杨辉三角去按行填写矩阵,如果杨辉三角旋转完毕之后矩阵还没有满,就在剩余的地方补0,具体情况如下图。
Input
多组输入。
每次输入占一行,有一个整数n,代表杨辉三角的行数. (1 < = n < = 20).
Output
输出可填充的最小正矩阵,正矩阵是指长和宽相同的矩阵。
保证数据合法。
Example Input
2
Example Output
1 11 0
注:为了更加清晰的展示过程,其中加了很多题目本不需要的输出。
#include<stdio.h>#include<string.h>#include<math.h>int main(){ int a[21][21]={0}; int b[21][21]={0}; int c[441]={0}; int i,j,n,m,k; int u; int x,y,z; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); m=(n*(n+1))/2; k=sqrt(m); if(k*k!=m) k++; // 杨辉三角的赋值 for(i=0;i<n;i++) { a[i][0]=1; } for(i=1;i<n;i++) { a[i][i]=1; } for(i=2;i<n;i++) { for(j=1;j<n-1;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; } } // 输出赋值后的杨辉三角 for(i=0;i<n;i++) { for(j=0;j<=i;j++) { printf("%d%c",a[i][j],j!=i?' ':'\n'); } } //螺旋分离 u=0; y=0; x=1; z=0; while(u!=m) { for(j=y;j<n;j++) { if(u==m) { c[u++]=a[j][x-1]; break; } c[u++]=a[j][x-1]; } for(j=x;j<n-z;j++) { if(u==m) { c[u++]=a[n-1][j]; break; } c[u++]=a[n-1][j]; } n--; for(j=n-1;j>y;j--) { if(u==m) { c[u++]=a[j][j-z]; break; } c[u++]=a[j][j-z]; } x++; y+=2; z++; } // 输出分离后的杨辉三角 for(i=0;i<u;i++) { printf("%d ",c[i]); } printf("\n"); // 转化成正方形 u=0; for(i=0;i<k;i++) { for(j=0;j<k;j++) { if(u==m) b[i][j]=c[u++]; else b[i][j]=c[u++]; } } // 输出正方形的杨辉三角 for(i=0;i<k;i++) { for(j=0;j<k;j++) { printf("%-2d%c",b[i][j],j<k-1?' ':'\n'); } } printf("\n"); } return 0;}
0 0
- 转呀转不晕矩阵
- 小金转呀转不晕矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- 矩阵
- PySide和PyQt加载ui文件的两种方法
- 文本框加灰色提示信息
- 神经网络训练之数据归一化处理
- 非常实用,Android引用ttf图标字体库
- 医院信息科面试题和笔试题汇总(计算机相关专业)
- 转呀转不晕矩阵
- linux 登陆ftp及文件上传及下载
- linux中vsftp设置用户默认ftp目录的例子
- linux定时任务添加简单总结
- 数据结构与算法(C语言版)__树
- Activity
- Android:处理调用系统相机照片被压缩问题,图片内容看不清的问题
- pymysql 连接mysql数据库---不支持中文解决
- 考研英语 - word-list-2