C语言程序 输出杨辉三角,C语言打印输出杨辉三角
杨辉三角,是二项式系数在三角形中的一种几何排列。
如下图所示:
规律:
1.每行端点与结尾的数为1.
2.每个数等于它上方两数之和。
2.每行数字左右对称,由1开始逐渐变大。
3.第n行的数字有n项。
4.每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第i+1行的第j个数等于第i行的第j-1个数和第j个数之和,这也是组合数的性质之一。即C(i+1,j)=C(i,j-1)+C(i,j)。
5.第 i 行第 j 个数可表示为:
例:
可以表示为: 7 的阶乘除以(7-3)的阶乘,再除以3的阶乘 即: ( 7! / (7-3)! )/ 3!
以下是笔者所写的代码:(使用了上述规律5)
/* 在屏幕上打印杨辉三角。
by 向前
*/
#define _CRT_SECURE_NO_WARNINGS
#include
#include
//该函数功能是求传入参数的阶乘
int Factorial(int num){
if (num == 0){
return 1;
} else{
int tmp = num;
for (int i = 1; i < num; ++i){
tmp = tmp*i;
}
return tmp;
}
}
//杨辉三角第 i 行,第 j 个数的值为 C(j-1,i-1)
int Num(int i, int j){
int n = 0;
n = Factorial(i - 1) / Factorial(i - j)/Factorial(j-1);
return n;
}
int main(){
int h = 0;
printf("输入需要打印的行数\n");
scanf("%d", &h); // 可以打印任意行数的杨辉三角
if (h<1){
printf("非法输入!请重新输入\n");
} else{
int s = h - 1;
for (int i = 1; i <= h; ++i){
for (s = h - i; s > 0; --s){ // 该循环是按照规律将空格输出,使之输出为一个三角形
printf(" ");
}
for (int j = 1; j <= i; ++j){
printf(" %d ", Num(i, j));
}
printf("\n\n"); // 每行输出结束后换行
}
}
system("pause");
return 0;
}
编译环境: Visual Studio 2013
运行效果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
时间: 2019-12-25
C语言程序 输出杨辉三角,C语言打印输出杨辉三角相关推荐
- C语言在main中输入2个整数ab,请教一个C语言问题。若输入3个整数3,2,1,则以下程序输出的结果是.,c 语言问题 输入三个整数 按从小到大输出...
导航:网站首页 > 请教一个C语言问题.若输入3个整数3,2,1,则以下程序输出的结果是.,c 语言问题 输入三个整数 按从小到大输出 请教一个C语言问题.若输入3个整数3,2,1,则以下程序输 ...
- 统计字符 c语言程序,统计字符个数的C语言程序.doc
统计字符个数的C语言程序.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文 ...
- c语言程序第一章编程,c语言程序的设计第一章 C语言编程入门.ppt
c语言程序的设计第一章 C语言编程入门 第1章 C语言编程入门 本章是本书的入门篇,专为初学者熟悉编程过程.掌握程序结构而准备的. 本章学习目标 ? 1)? 能够通过模仿与改变来构造带有测试函数的C语 ...
- 杨辉三角c语言程序for循环,如何用C语言循环输出杨辉三角?
#include #define N 14 void main() { int i, j, k, n=0, a[N][N]; /*定义二维数组a[14][14]*/ while(n<=0||n ...
- C语言程序——输出字符
为学日益,为道日损 文章目录 前言 一.使用C语言一般格式显示字符 二.编写代码 2.运行结果 总结 前言 一个标准的C语言程序具有的一般格式: 预处理命令和全局性的声明 main() 主函数 { 局 ...
- C语言阅读程序输出星号井号,C语言字符
在实际开发中,程序员很少用单个字符来表示数据,字符的意义主要作为数组的时候可以形成一个字符串.在本章节中,我们重点介绍字符与整数之间的关系和ASCII码的相关知识. 字符类型char,只能用单引号' ...
- 编写C语言程序 输出一个菱形
用C语言程序实现打印出一个菱形,观察菱形,它的每一行前面会有空格,要打印菱形,首先要算出空格多少的规律,以及每行*的数目,把菱形分为上下两部分打印,上半部分规律:观察最长的一行,它的*数目是它行数的二 ...
- c语言程序与设计苏小红,c语言程序设计苏小红
<实验教学示范中心建设教材·国家精品课程主讲教材:C语言程序设计(第2版)>是一本兼具趣味性和实用性的C语言程序设计教材.全书由13章组成,内容包括:为什么要学C语言,C数据类型,简单的算 ...
- 重庆理工大学c语言程序实验报告,重庆理工大学-C语言程序实验报告.doc
重庆理工大学-C语言程序实验报告 程序设计基础C实验报告 PAGE 47 <程序设计基础C> 实 验 报 告 教学班级: 学号: 姓名: 课程教师: 实验辅导教师: 重庆理工大学计算机学院 ...
- c语言程序中cost的作用,C语言考试题基础版(21页)-原创力文档
if (x>y)z=x; s=z*z;elsez=y;s=1/(z*z); if (x>y) z=x; s=z*z; else z=y;s=1/(z*z); 7. B. C. PAd, P ...
最新文章
- JAVA总结之数组篇
- 重磅!李宏毅教授机器学习训练营
- 20190808面试记录
- java多个类调用_JAVA问题总结之15-多个类之间的调用
- 国内外ACM/ICPC的OJ,BBS列表
- 计算机辅助设计与制造专业课程,《计算机辅助设计与制造》课程实验指导书
- Oracle遇到的一些坑
- HDU-6341 Problem J. Let Sudoku Rotate(dfs 剪枝)
- Facebook人工智能实验室的前世今生
- Delphi常用字符串函数
- Python 的解释器
- OLDX-FC开源飞控
- 车站计算机系统的简称,AFC计算机系统.ppt
- 用计算机探究规律的教学反思,《找规律》教学反思(精选11篇)
- VMware Workstation 17 Pro密钥
- 理解Kademlia协议原理
- LZX 定义 - 转帖
- 关于android的广告词,关于android:随心译无广告的专属实时翻译神器
- 嵌入式系统硬件处理器架构的发展趋势及比较分析
- 180122 逆向-Frida在Windows下的使用