【C语言】杨辉三角

#include<stdio.h>

int main()
{
	int a[20][20] = { 0 };
	int n = 0, i = 0, j = 0;
	printf("杨辉三角\n\n");
	printf("请输入一个自然数:");
	scanf_s("%d", &n);
	for (i = 0; i < n;i++)
		a[i][0] = 1;
	for (i = 1; i < n; i++)
	for (j = 1; j <= i; 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("%5d", a[i][j]);
		printf("\n");
	}
	system("pause");
}
时间: 2024-11-07 02:15:05

【C语言】杨辉三角的相关文章

C语言--杨辉三角

int i,j,arr[17]={0,1},l,r, for(i=1;i<=n;i++)   { l=0;     for(j=1;j<=i;j++)     { r=a[j];       a[j]=l+r;         l=r;       printf("%5d",a[j]);       }

C 语言 杨辉三角

输出以下的杨辉三角形(要求输出10行) 源代码 #include <stdio.h> int main () { int a[10][10]; int i; int j; for(i=0;i<10;i++) { for(j=0;j<=i;j++) { if( i==j || j==0) { a[i][j]=1; //每行的的首末位置的数均为1 } else { a[i][j]=a[i-1][j]+a[i-1][j-1]; //每个数等于上一行的对应位置的前两个数的和 } print

用C语言编写杨辉三角

今天给大家带来用C语言在屏幕上输出杨辉三角 杨辉三角: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 思路:主要用到循环和数组的知识,今天就以for循环为例,给大家输出10行的杨辉三角.我们需要定义一个二维数组(a[][]),我们知道数组是从零开始的,所以第一行第一个是a[0][0],通过观察我们发现:第一列所有的数字都是1,即就是a[i][0]=1,i表示任何数字.我们还可以看出,当行数和列数相等时,该位的数字也为1,即就是a[i][i]=1,杨辉三角中间的数字规律是:从第三行开

C语言打印杨辉三角(2种方法)

杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来. 在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和.这就是我们用C语言写杨辉三角的关键之一.在高中的时候我们又知道,杨辉三角的任意一行都是的二项式系数,n为行数减1.也就是说任何一个数等于这个是高中的组合数.n代表行数减1,不代表列数减1.如:第五行的第三个数就为=6. 现在我们按第一种思路来写:先定义一个二维数组:a[N][N],略大于要打印的行数.再令两边的数为1,即当每行的第一个数和

杨辉三角(Pascal Triangle)的几种C语言实现及其复杂度分析

说明 本文给出杨辉三角的几种C语言实现,并简要分析典型方法的复杂度. 本文假定读者具备二项式定理.排列组合.求和等方面的数学知识. 一  基本概念 杨辉三角,又称贾宪三角.帕斯卡三角,是二项式系数在三角形中的一种几何排列.此处引用维基百科上的一张动态图以直观说明(原文链接http://zh.wikipedia.org/wiki/杨辉三角): 从上图可看出杨辉三角的几个显著特征: 1. 每行数值左右对称,且均为正整数. 2. 行数递增时,列数亦递增. 3. 除斜边上的1外,其余数值均等于其肩部两数

Go语言:打印杨辉三角

杨辉三角的样式如下: 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 7 21 35 35 21 7 1 它的特征是,每一行的最左边和最右边的元素都是1,而其它元素等于它上方"肩膀"上的两个元素之和. 使用Go语言打印杨辉三角: package test import ( "fmt" ) //行数 const LINES int = 8 //杨辉三角 func ShowYangHuiTri

以杨辉三角为例,从内存角度简单分析C语言中的动态二维数组

学C语言,一定绕不过指针这一大难关,而指针最让人头疼的就是各种指向关系,一阶的指针还比较容易掌握,但一旦阶数一高,就很容易理不清楚其中的指向关系,现在我将通过杨辉三角为例,我会用四种方法从内存的角度简单分析动态二维数组,若有不足或错误之处,还请指出! 在讲这之前,以一维数组为例,先重新认识一下数组: int array[5] = {1, 2, 3, 4, 5}; 首先数组名称是该数组的首地址常量,即数组名称就是指针,就有&array[0] == array! 那么我们可以推出*array ==

杨辉三角(C语言)

杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的<详解九章算法>一书中出现.在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形.帕斯卡的发现比杨辉要迟393年,比贾宪迟600年. 如图: 它的规律是,除了每一行的第一个数和最后一个数,其余每个数等于上面两个数字值之和. C语言实现: #include <stdio.h> void yanghui(int number); int main(vo

C语言打印出 杨辉三角

第三题: #include <stdio.h> #include<stdlib.h> int main() //打印 杨辉三角 { int arr[40][40], t = 0, i = 0, j = 0;  // t:高度 int temp = 0;  //temp就是t,表示高度 printf("请输入要打印的杨辉三角的高度(40以内):"); scanf("%d", &t); for (i = 0; i < t; i++)

C语言实现在屏幕上输出杨辉三角

★在屏幕上打印杨辉三角 #include<stdio.h> int main() { int i = 0, j = 0, num = 0,k = 0; printf("请输入要输出的杨辉三角的行数:"); scanf("%d", &num); for (i = 1; i <= num; i++) { k = 1;         //每行须以1开头,所以将K定义在第二层循环之外 for (j = 1; j <= i; j++) { p