c语言编程杨辉三角前八行思路,C语言----(杨辉三角)
用C语言编程打印出杨辉三角的前10行。如下图所示:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
... ...
解法1:
(1)由题可设一个10*10的二维数组来存放数据,如int arr[10][10];
(2)观察杨辉三角形得出规律——第一列元素和对角线上的元素为1,即有arr[ i ][ 0 ] = 1和arr[ i ][ i ] = 1;
(3)其他元素为其前一行前一列的元素与其前一行元素之和,即arr[ i ][ j ] = arr[ i-1 ][ j-1 ] + arr[ i-1 ][ j ];
(4)按行输出。
程序如下:
#include
#define ROW 10
void PascalTriangle()
{
int arr[ROW][ROW];
for(int i=0;i
{
for(int j=0;j<=i;j++)
{
if(j==0 || i==j)
{
arr[i][j] = 1;
}
else
{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
}
for(int i=0;i
{
for(int j=0;j<=i;j++)
{
printf("%5d ",arr[i][j]);
}
printf("\n");
}
}
int main()
{
PascalTriangle();
}
解法2:运用一维数组,采用逐行求解逐行输出的方法。
程序如下:
#include
void main()
{
int i;
int j;
int a[30];
a[0] = 1; //各行第一个元素赋值为1
printf("%6d",a[0]);
for(i=2; i<=10; i++)
{
a[i-1] = 1; //各行最后一个元素赋值为1
for(j=i-2; j>0; j--)
a[j] += a[j-1]; //计算每一行除第一列和最后一列的其它元素之和
for(j=0; j
printf("%6d",a[j]);
printf("\n");
}
}
解法3:不使用数组实现,可以用for循环语句。
思路:
第n行的第1个数为1,
第二个数为1×(n-1),
第三个数为1×(n-1)×(n-2)/2,
第四个数为1×(n-1)×(n-2)/2×(n-3)/3,
…依此类推
代码如下:
#include
#include
int main()
{
int s = 1; //数值
int h; //高度
int i;
int j;
scanf("%d",&h);
printf("1\n");
for(i=2; i<=h; s=1,i++)
{
printf("1 ");
for(j=1; j<=i-2; j++)
printf("%d ",(s = (i-j)*s/j));
printf("1\n");
}
getchar();
return 0;
}
c语言编程杨辉三角前八行思路,C语言----(杨辉三角)相关推荐
- C语言输出杨辉三角前n行(低时间复杂度)
C语言实现杨辉三角前n行(低时间复杂度) 杨辉三角定义 杨辉三角,是二项式系数在三角形中的一种几何排列,初中的时候我们学过它的每一个数都是上一行两个数之和,如图 已知杨辉三角行数 如果我们已知要求的杨 ...
- 杨辉三角:给出正整数n(2<=n<=10),输出杨辉三角前n行 杨辉三角性质:三角形中的每个数字等于它两肩上的数字相加
给出正整数n(2<=n<=10),输出杨辉三角前n行 杨辉三角性质:三角形中的每个数字等于它两肩上的数字相加输入格式:输入一个正整数n 输出格式:输出杨辉三角的前n行,元素中间用一个空格分 ...
- C语言编程入门新手学习精华:这样学习C语言最有效
1. C语言已死吗? 本资料描述的是使用C语言的高级技巧,力求将你的C语言能力由"基础"提升为"高级".但是学习态度胜过学习方法,在正式学习之前,有一个问题不吐 ...
- 换硬币c语言编程_为什么大多数程序员都会学C语言的5大原因!什么原因让你学不会?...
一.c语言,不朽的传奇 从30年前到如今,一些流行的科技媒体上发表的编程语言排行榜,c语言始终稳定位于前三位,这是其他一种其他的编程语言都达不到的.c语言的江湖地位,不容撼动.虽历史悠久,却也是不朽的 ...
- c语言编程计算c上0下n,计算方法C语言编程讲解.doc
计算方法C语言编程讲解 计算方法C语言编程 1.已知方程在区间[1,2]内有一根,试问用二分法求根,使其具有5位有效数字至少应二分多少次? [程序设计] clc;clear a=1;b=2;n=0; ...
- c语言编程基础第四版电子教案,《C语言编程基础》电子教案.doc
<C语言编程基础>电子教案 课题(内容)1.1 C语言简史及特点课时1教学任务分析教学目标知识技能通过本节课的教学,使学生了解并熟悉编程语言C的发展历史.特点及其种类和适用范围.过程与方法 ...
- C语言编程可调电子钟设计,基于ZG211使用C语言编程的电子钟显示设计(最终版)...
<基于ZG211使用C语言编程的电子钟显示设计.doc>由会员分享,可在线阅读全文,更多相关<基于ZG211使用C语言编程的电子钟显示设计(最终版)>请在www.woc88.c ...
- C语言编程论文多少,学生程序论文,有关C语言编程改革的参考
指导: 本文主要讨论与学生程序论文相关的参考文献,对您的论文写作有参考作用. (1. 江苏师范大学现代教育技术中心,江苏徐州221116: 2. 中国矿业大学徐海学院计算机科学与技术系,江苏徐州221 ...
- python语言编程入门先学什么-初学者先学习python语言还是C语言
有人觉得应该从C语言开始入门,原因如下: 1.C语言是你上大学第一门接触的编程语言,可见它的重要性. 2.C语言是一种面向过程的语言,而Python是一种面向对象的解释型计算机程序设计语言.而你需要先 ...
最新文章
- DNS 映射解析应用(二)
- 【Android 安全】DEX 加密 ( Java 工具开发 | 加密解密算法 API | 编译代理 Application 依赖库 | 解压依赖库 aar 文件 )
- android简单长按,H5实现安卓长按/抬起事件
- AutoLayouterLib第一版基本完成
- JavaSE(十七)——IO流之字节流
- Java ServletContextListener监听器的使用
- android自定义水波纹,android 自定义view-水波纹进度球
- 模拟退火算法(TSP问题)
- WPF采用MVVM模式(绑定:纯前台、命令:触发器绑定命令)
- 用SandCastle为注释生成chm文档
- hdu4757(可持久化 Trie )
- 价量分析.成交量判断多空头.用跌减涨增量法买股票.成交量识庄家
- 自定义分页信息java_java-displaytag自定义分页
- mysql连接显示“message from server :“Host ‘XXXX‘ is not allowed to connect to this MySQL server“”
- 你一定要掌握的三条IT运维面试技巧
- linux秘钥登录使用authorized_keys不生效
- Factor Graphs and GTSAM
- 重庆大学计算机组装与维护,重庆大学2020年春季学期课程作业计算机组装与维护(37页)-原创力文档...
- 基于双月数据集利用最小二乘法进行分类
- java中用于定义小数的关键字_Java中用于定义小数的关键字有两个:() 和 (),后者精度高于前者。...
热门文章
- R线性回归模型构建示例
- python和R对dataframe的常用操作的差异:head、tail、shape、dim、nrow、ncol、descirbe、summary、str
- AR模型、MA(Moving Average)模型、ARMA模型、时间序列的定阶、ARIMA、SARIMAX
- 基于Isolation Forest以及MeanShift进行异常检测模型的构建
- Webinar: An introduction to PacBio’s long-read sequencing how it has been used to make important s
- flask传值给js
- 【ES6】JS第7种数据类型:Symbol
- 快速人体姿态估计--Pose Proposal Networks
- 【keras】Input 0 of layer conv2d is incompatible with the layer. expected ndim=4, found ndim=3
- Linux/ubuntu 安装 redis 4.0报错解决:redis-server.service: Can't open PID file /var/run/redis/redis-server.