• 杨辉三角(C语言)


    杨辉三角

    杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
    如图:

    它的规律是,除了每一行的第一个数和最后一个数,其余每个数等于上面两个数字值之和。

    C语言实现:

    #include <stdio.h>
    
    void yanghui(int number);
    
    int main(void){
    	int number = 0;
    	printf("请输入要打印的层数:");
    	scanf("%d",&number);
    	yanghui(number);
    }
    
    void yanghui(int number){
    	int i , j , k , z;
    	int array[100][100] = {0};
    	for (i = 0; i < number; i++)	//为每一行的第一个和最后一个数赋值1 
        {
            for (j = 0; j <= i; j++)
            {
                array[i][0] = 1;
                if (i == j)
    			{
    				array[i][j] = 1;
    			}
            }
        }
    	for( i = 0 ; i < number ; i ++)		//控制行数 
    	{
    		for( k = 0 ; k <= i ; k ++)		//控制列数 
    		{
    			if(k == 0)		//如果是每行第一个数就打印1 
    			{
    				for(z = 0 ; z < number - i ; z ++)		//控制每一行前面的空格 
    				{
    					printf(" ");
    				}
    				printf("%d",array[0][0]);
    				printf(" ");
    			}else if(k == i)	//如果是每行的最后一个就打印1 
    			{
    				printf("%d",array[0][0]);
    			}
    			if(k != 0 && k != i)	//如果不是每行的第一个也不是最后一个就打印上一行两个数的和 
    			{
    				array[i][k] = array[i-1][k-1] + array[i-1][k];
    				printf("%d",array[i][k]);
    				printf(" ");
    			}
    		}
    		printf("
    ");		//每打印一行进行换行 
    	}
    }
    

    输出:

  • 相关阅读:
    VUE学习一,安装及Hello World
    609. 在系统中查找重复文件
    451. 根据字符出现频率排序
    面试题 10.02. 变位词组
    142. 环形链表 II
    面试题 16.24. 数对和
    151. 翻转字符串里的单词
    1207. 独一无二的出现次数
    80. 删除排序数组中的重复项 II
    1365. 有多少小于当前数字的数字
  • 原文地址:https://www.cnblogs.com/Timesi/p/12189153.html
Copyright © 2020-2023  润新知