c语言杨辉三角详解,c语言如何用函数实现杨辉三角,C语言杨辉三角两种实现方法

c语言杨辉三角详解,c语言如何用函数实现杨辉三角,C语言杨辉三角两种实现方法

大家好,本文主要讲两种在C语言中实现杨辉三角形的方法。有兴趣的同学过来看看。如果对你有帮助,记得收藏起来下次浏览。

目录

杨辉三角——C语言实现方法一:用二维数组实现方法二(方法一的改进):总结

杨辉三角——C语言实现

杨辉三角:

在屏幕上打印杨辉三角。

一个

1 1

1 2 1

1 3 3 1

……

根据上面的例子:

1.每行的第一个和第二个数字是1;

2.剩余的数字是正上方和正左侧的数字之和。

方法一:利用二维数组实现

解题思路:

根据杨辉三角形定律,我们可以定义一个二维数组来打印杨辉三角形,这里的数字定律是:

data[I][j]=data[I-1][j]data[I-1][j-1],所以我们可以按照这个方法把数据填入二维数组,并打印出来。

代码如下:

#包含stdio.h

int main()

{

int n;

int data[30][30]={ 1 };//直接填第一行,就是1

Printf('请输入要打印的行数:');

scanf('%d ',n);

for(int I=1;I n;I )//从第二行开始填写

{

data[I][0]=1;//将每行的第一列初始化为1,以防止它越界。

for(int j=1;j I 1;j)

{

data[I][j]=data[I-1][j]data[I-1][j-1];

}

}

for(int I=0;I n;I )//打印一个二维数组

{

for(int j=0;j I 1;j)

{

printf('%d ',data[I][j]);

}

printf(' \ n ');

}

返回0;

}

运行结果:

方法二(对方法一的改进):

因为我在第n行填写杨辉三角形的时候,只和第n-1行的杨辉三角形有联系,和前面的没有联系,所以不需要保存每行的杨辉三角形。使用一维数组,我只要填一行,打一行就可以了,可以把空间复杂度从O(n 2)降低到O(n)。但是之前的数据在填写数据的时候是不能覆盖的,所以需要从后往前填写。但填充杨辉三角形的顺序对结果没有影响,所以可以实现。

代码如下:

#包含stdio.h

int main()

{

int n;

int data[30]={ 1 };

Printf('请输入要打印的行数:');

scanf('%d ',n);

printf(' 1 \ n ');//直接打印第一行

for(int I=1;I n;I )//从第二行开始

{

for(int j=I;j 0;j-)//从后往前填,避免前一行的数据在使用前被覆盖。

{

data[j]=data[j-1];

}

for(int j=0;j=I;j)

{

printf('%d ',data[j]);

}

printf(' \ n ');

}

返回0;

}

运行结果:

总结

关于在C语言中实现杨辉三角形的两种方法的文章到此结束。关于C语言杨辉三角形的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: