目录

方法一:一维数组,节约内存

方法二:(最佳算法⭐)递归函数法,程序最简,占用内存最少

运行结果:


C语言输出杨辉三角形 等腰三角形

前言

杨辉三角形的特点:

  • 第一列和对角线上的元素都为1;
  • 除第一列和对角线上的元素之外,其他的元素的值均为前一行上的同列元素和前一列元素之和。

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
* * * * * *
下面就为大家介绍一下杨辉三角的2种最佳算法:

方法一:一维数组,节约内存

#include <stdio.h>
int main()
{int i, j, n, k, t; long Buf[21]={0,1};    //用于保存一行数据printf("请输入杨辉三角形的行数(1 ~ 20):");scanf("%d",&n);for( i = 1; i <= n; i++)    //输出n行{for( j = 0; j < n - i; j++)    //每行前面补空格,形成等腰三角图案   printf("   ");t = 0;for( j = 1; j <= i; j++)//计算并输出杨辉三角形{k = Buf[j];Buf[j] = t + k;        //每个数是上面两数之和(三角计算)t = k;printf("%6d", Buf[j]); }printf("\n");}return 0;
}

方法二:(最佳算法⭐)递归函数法,程序最简,占用内存最少

#include <stdio.h>
long Tri(int r, int c) //杨辉三角算法函数
{return (c == 1 || c == r) ? 1 : Tri( r - 1, c - 1 ) + Tri( r - 1, c );
}
int main()
{int i, j, n; printf("请输入杨辉三角形的行数(1 ~ 20):");scanf("%d", &n);for( i = 1; i <= n; i++)   // 输出n行{for( j = 0; j < n - i; j++)       //每行前面补空格,显示成等腰三角形   printf("   ");for( j = 1; j <= i; j++)printf("%6d", Tri(i, j));  //计算并输出杨辉三角形    printf("\n");}return 0;
}

运行结果:

C语言——杨辉三角(最佳算法)相关推荐

  1. HTML 杨辉三角,杨辉三角 的算法实现

    杨辉三角 的算法实现 杨辉三角形是排列成三角形的一系列数字. 在杨辉三角形中,每一行的最左边和最右边的数字总是 1. 对于其余的每个数字都是前一行中直接位于它上面的两个数字之和. 下面给出一个5行的杨 ...

  2. c语言杨辉三角求排列组合,杨辉三角(Pascal Triangle)的几种C语言实现及其复杂度分析...

    说明 本文给出杨辉三角的几种C语言实现,并简要分析典型方法的复杂度. 本文假定读者具备二项式定理.排列组合.求和等方面的数学知识. 一  基本概念 杨辉三角,又称贾宪三角.帕斯卡三角,是二项式系数在三 ...

  3. c语言 杨辉三角(详解)

    前言:杨辉三角,是二项式系数在三角形中的一种几何排列,出自中国南宋数学家杨辉1261年所著的<详解九章算法>,今天让我们用c语言来让杨辉三角呈现在我们面前! 目录 一.杨辉三角 二.问题分 ...

  4. C语言杨辉三角(两种方法)

    杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来. 在初中,我们就知道,杨辉三角的两个腰边的数都是 1,其它位置的数都是上顶上两个数之和.这就是我们用C语言写杨辉三角的关键之一 ...

  5. C语言杨辉三角代码详解(超级详细,真的不进来看看吗?)

    杨辉三角:是二项式系数在三角形中的一种几何排列.它的两条斜边都是1,中间数字等于它肩上数字之和. 就像这样: 那么,如何用C语言写出杨辉三角呢? 思路 1.定义一个二维数组,赋初值为1,这里以四行四列 ...

  6. c语言杨辉三角解释,C语言杨辉三角是什么

    在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和.这就是我们用C语言写杨辉三角的'关键之一.在高中的时候我们又知道,杨辉三角的任意一行都是的二项式系数,n为行数减1. ...

  7. c语言杨辉三角形7行7liu,7. C语言杨辉三角(两种方法)

    杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来. 在初中,我们就知道,杨辉三角的两个腰边的数都是 1,其它位置的数都是上顶上两个数之和.这就是我们用C语言写杨辉三角的关键之一 ...

  8. C语言杨辉三角(用二维数组)

    杨辉三角概述: 每行端点与结尾的数为1. 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 第n行的数字有n项. 前n行共[(1+n)n]/2 个数. 第n行的m个数可表示为 C(n- ...

  9. C语言杨辉三角(不用数组)

    程序分析: 前面已经介绍了用二维数组.一维数组写杨辉三角,这里再一种不用数组的方法,这种方法是三种当中最难的一个. 在写程序之前我们要发现杨辉三角的每个位置上的数字的特征,即: 第n行:第一个值是1, ...

最新文章

  1. Android三种播放视频的方式
  2. 网站DDOS***防护实战老男孩经验心得分享
  3. linux uname 命令简介
  4. 有哪些好的 LaTeX 编辑器?
  5. 查看java返回的值,JavaScript 遍历对象查找指定的值并返回路径
  6. UI(UGUI)框架(一)---------概述与保存/读取面板类型与路径
  7. NDK(三方库引入、Mk文件)
  8. .net 测试工具类
  9. 【华为云技术分享】《跟唐老师学习云网络》—我的网络概念
  10. 什么是Makefile.am和Makefile.in?
  11. vsftpd中文目录乱码的解决办法
  12. studio one 3 机架声道设置_雅马哈声卡的设置和使用方法
  13. STM32 CubeIDE快速创建工程(图文详解)
  14. C语言和设计模式-工厂方法
  15. WebRTC系列--视频编码控制之BALANCED(分辨率与帧率平衡模式)
  16. 一步一步做高性能服务器(C++) -- Day 0
  17. 学人工智能以后去哪里工作?学AI可以做什么?
  18. unity 发光字体_Unity 游戏开发技巧集锦之创建自发光材质
  19. 完全自制的五子棋人机对战游戏(VC++实现)
  20. 谈NANDnbsp;Flash的底层结构和解析

热门文章

  1. 修改iphone微博的GPS位置(iOS6.1.2)
  2. 计算机一级photoshop试题,计算机一级photoshop选择题练习及答案
  3. MongoDB系列之Linux环境部署配置
  4. checkedlistbox(checkedlistbox用法)
  5. devos勒索病毒解决方法|勒索病毒解密|勒索病毒恢复|数据库修复
  6. Java好用的代码检测工具有哪些?
  7. pdf文档打印小册子
  8. 用C语言实现“模拟用户登录情景”、“猜数字小游戏”
  9. 小马哥---高仿红米note刷机拆机 2015新版 M8207型号拆机主板多图展示
  10. 小马哥-----高仿红米note H19ST 单卡4G版拆机主板图与开机界面图面面观