精华内容
下载资源
问答
  • 杨辉三角

    2018-05-17 22:56:58
    杨辉三角杨辉三角,其实质是二项式为(a+b)的n次方展开后各项系数排成的三角形,它的特点是左右两边是1,从第2行开始,中间的每一行数是上一行里相邻两个数之和。#include<stdio.h> #include...

    杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。
    杨辉三角如图:
    杨辉三角,其实质是二项式为(a+b)的n次方展开后各项系数排成的三角形,它的特点是左右两边全是1,从第2行开始,中间的每一行数是上一行里相邻两个数之和。
    #include<stdio.h>
    #include<windows.h>
    #pragma warning(disable:4996)
    
    int Yang(int i, int j)
    {
    	if (j == 0 || j == i)
    		return 1;
    	else
    		return Yang(i - 1, j - 1) + Yang(i - 1, j);
    }
    
    int main()
    {
    	int i;
    	int j;
    	int n;
    	scanf("%d", &n);
    	for (i = 0; i <= n; i++){
    		for (j = 0; j < n - 1; j++)
    			printf("  ");
    		for (j = 0; j <= i; j++)
    			printf("%6d", Yang(i, j));
    		printf("\n");
    	}
    	getch();
    	return 0;
    }


    展开全文
  • 问题分析:由上可知杨辉三角在每一个数字都是它上方两个数字的和,所以这个便是这道题的关键,我们可以用二维数组来解决这个问题。可以给第一列赋值为1,其他的可以根据arr[i][j] = arr[i-1][j-1] + arr[i-1][j];...

    首先我们先了解一下什么是杨辉三角形,下面是一张图片,我们可以从中发现一个规律,每一个数字都是它上方两个数字的和。
    在这里插入图片描述
    问题分析:由上可知杨辉三角在每一个数字都是它上方两个数字的和,所以这个便是这道题的关键,我们可以用二维数组来解决这个问题。可以给第一列全赋值为1,其他的可以根据arr[i][j] = arr[i-1][j-1] + arr[i-1][j];来计算。
    代码如下:

    //打印杨辉三角形
    #include <stdio.h>
    #define n 10
    int main()
    {
    	int i = 0, j = 0;
    	int arr[n][n] = { 1 };//arr[0][0]设置为1
    	for (i = 1; i < n; i++)
    	{
    		arr[i][0] = 1;//第一列全设置为1
    		for (j = 1; j <= i; j++)
    		{
    			//其余位置计算
    			arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
    		}
    	}
    	//打印杨辉三角形
    	for (i = 0; i < n; i++)
    	{
    		for (j = 0; j <= i; j++)
    		{
    			printf("%5d", arr[i][j]);
    		}
    		printf("\n");
    	}
    	return 0;
    }
    

    程序运行结果如下:
    在这里插入图片描述

    展开全文
  • java 打印杨辉三角

    2021-01-17 21:26:07
    java 打印杨辉三角 经典问题 打印图形,最重要的是要找到规律。 具体规律详见注释。 public class YangHuiSanJiao{ public static void main(String[] args) { int array[][]=new int [10][10]; for(int i=0;i&...

    经典问题
    打印图形,最重要的是要找到规律。
    具体规律详见注释。

    public class YangHuiSanJiao{
    	public static void main(String[] args) {
    		int array[][]=new int [10][10];
    		for(int i=0;i<10;i++){
    			array[i][i]=1;//对角线全是1
    			array[i][0]=1;//第一列全是1
    		}
    		for(int i=2;i<10;i++) {//从第三行开始
    			for(int j=1;j<=i-1;j++) {//每行从第二列开始
    				array[i][j]=array[i-1][j-1]+array[i-1][j];
    				//第i行j列的值 = 第i-1行j-1列的值 + 第i-1行j列的值
    			}
    		}
    		for(int i=0;i<10;i++) {
    			for(int j =9; j >= i; j --){
                    System.out.print("  ");//打印空格,没有该循环,将是一个直角三角形,如下图运行结果
                }
    			for(int j=0;j<=i;j++) {
    				System.out.print(+array[i][j]+"   ");//打印杨辉三角
    			}
    			System.out.println(	);
    		}
    	}
    }
    

    运行结果:

    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   8   28   56   70   56   28   8   1   
    1   9   36   84   126   126   84   36   9   1   
    
    
                        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   8   28   56   70   56   28   8   1   
      1   9   36   84   126   126   84   36   9   1   
    
    

    java学习ing.jpg 😊o( ̄▽ ̄)ブ

    有其他见解,评论区留言或者私信,一起讨论,纠正。

    关注我,努力鸭~和我一起学习鸭~

    另外,转载文章请记得附上原文链接哦

    展开全文
  • 【C语言】求杨辉三角的6种方法

    万次阅读 多人点赞 2018-10-20 22:25:45
    前言 形如下的三角形,其实质是二项式(a+b)的n次方展开后...这就是经典的杨辉三角,下面就为大家介绍一下杨辉三角的6中解法。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 … 方法一: #include&lt;stdio.h&gt; void...

    前言

    形如下图的三角形,其实质是二项式(a+b)的n次方展开后各项的系数排成的三角形,它的特点是左右两边全是1,从第二行起,中间的每一个数是上一行里相邻两个数之和。这就是经典的杨辉三角,下面就为大家介绍一下杨辉三角的6中解法。

    1

    1 1

    1 2 1

    1 3 3 1

    1 4 6 4 1

    方法一:

    #include<stdio.h>
    void main()
    { int i,j,n=0,a[17][17]={0};
       while(n<1 || n>16)
       { printf("请输入杨辉三角形的行数:");
         scanf("%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");
       }
    }
    

    解法一属于最容易想到的解法,各部分功能独立,程序浅显易懂。

    方法二:

    #include<stdio.h>
    void main()
    { int i,j,n=0,a[17][17]={1};
       while(n<1 || n>16)
       { printf("请输入杨辉三角形的行数:");
         scanf("%d",&n);
       }
       for(i=1;i<n;i++)
       { a[i][0]=1;              /*第一列全置为一*/
         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");
         }
    } 
    

    解法二在一的基础上,把第一列置为1的命令移到下面的双重循环中,减少了一个循环。注意初始化数组的变化。

    方法三:

    #include<stdio.h>
    void main()
    { int i,j,n=0,a[17][17]={0,1};
       while(n<1 || n>16)
       { printf("请输入杨辉三角形的行数:");
         scanf("%d",&n);
       }
       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=1;i<=n;i++)           /*输出杨辉三角*/
       { for(j=1;j<=i;j++) printf("%5d",a[i][j]);
          printf("\n");
       }
    }
    

    解法三是在一、二的基础上,把第一列置为1的命令去掉了,注意初始化数组的变化。

    方法四:

    #include<stdio.h>
    void main()
    { int i,j,n=0,a[17][17]={0,1};
       while(n<1 || n>16)
       { printf("请输入杨辉三角形的行数:");
         scanf("%d",&n);
       }
       for(i=1;i<=n;i++)
       { for(j=1;j<=i;j++)
         { a[i][j]=a[i-1][j-1]+a[i-1][j];   /*每个数是上面两数之和*/
           printf("%5d",a[i][j]);    /*输出杨辉三角*/
         }
         printf("\n");
       }
    }
    

    解法四在解法三的基础上,将计算和打印合并到一个双重循环中。

    方法五:

    #include<stdio.h>
    void main()
    { int i,j,n=0,a[17]={1},b[17];
       while(n<1 || n>16)
       { printf("请输入杨辉三角形的行数:");
         scanf("%d",&n);
       }
       for(i=0;i<n;i++)
       { b[0]=a[0];
         for(j=1;j<=i;j++)
            b[j]=a[j-1]+a[j];   /*每个数是上面两数之和*/
         for(j=0;j<=i;j++)            /*输出杨辉三角*/
         { a[j]=b[j];   /*把算得的新行赋给a,用于打印和下一次计算*/
           printf("%5d",a[j]);
         }
         printf("\n");
       }
    }
    

    解法一到四都用了二维数组,占用的空间较多,而解法五只使用了两个一维数组。

    方法六:

    #include<stdio.h>
    void main()
    { int i,j,n=0,a[17]={0,1},l,r;
       while(n<1 || n>16)
       { printf("请输入杨辉三角形的行数:");
         scanf("%d",&n);
       }
       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]);   /*输出杨辉三角*/
         }
         printf("\n");
       }
    }
    

    解法六只使用了一个一维数组和两个临时变量,最为简洁。

    展开全文
  • 课程小作业,供参考 一个代码文件 一个编译链接后的可执行文件 一张流程 一堆运行截图 代码几乎做到注释,且有心得与体会 适合新手和初学者食用
  • } BASIC-6、杨辉三角形 #include int main() { int i, j; int n; scanf("%d", &n); int a[n][n]; if(n == 1) { printf("1\n"); return 0; } else { a[0][0] = 1; a[1][0] = 1; a[1][1] = 1; ...
  • 杨辉三角形.txt 栈单元加.txt 栈操作.txt 桃子猴.txt 桶排序.txt 检出错误.txt 检测鼠标.txt 汉字字模.txt 汉诺塔.txt 汉诺塔2.txt 灯塔问题.txt 猴子和桃.txt 百鸡百钱.txt 矩阵乘法动态规划.txt ...
  • Java范例开发大全(书源程序)

    热门讨论 2013-04-05 11:50:26
    实例24 杨辉三角 38 3.3 while语句 39 实例25 求1到100之间的和 39 实例26 存上100元需要多少天 40 实例27 输出100之间的所有偶数 41 实例28 如何判断回文数字 42 3.4 do…while语句 43 实例29 输出100之间...
  • 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函数:c函数 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维数组的表示 14 范例1-6 三维数组的表示 14 ∷相关函数:InitArray函数 1.1.7 多项式的数组...
  • \数据结构flash演示\版本1\3-4-1杨辉三角.swf \数据结构flash演示\版本1\3-4-2离散事件模拟.swf \数据结构flash演示\版本1\4-1-1串的定位操作.swf \数据结构flash演示\版本1\4-1-2串的替换.swf \数据结构flash...
  • 实验四 的基本运算…………………………………………………………………………7 实验五 查找的有关操作…………………………………………………………………………8 实验六 排序的有关操作…………………………...
  • 杨辉三角形.txt 栈单元加.txt 栈操作.txt 桃子猴.txt 桶排序.txt 检出错误.txt 检测鼠标.txt 汉字字模.txt 汉诺塔.txt 汉诺塔2.txt 灯塔问题.txt 猴子和桃.txt 百鸡百钱.txt 矩阵乘法动态规划.txt ...
  • 4.15 打印杨辉三角 4.16 复杂级数的前n项和 4.17 寻找矩阵中的“鞍点” 4.18 n阶勒让德多项式求解 4.19 递归反向输出字符串 4.20 一年中的第几天 第5章 数学趣题(一) 5.1 舍罕王的失算 5.2 求两个数的最大公约数...
  • 实例017 打印杨辉三角 22 1.4 循环的数学应用 23 实例018 序列求和 23 实例019 简单的级数运算 24 实例020 用while语句求n! 25 实例021 特殊等式 26 实例022 求一个正整数的所有因子 27 实例023 ...
  • 杨辉三角形.c 桶排序.c 矩阵转换.c 螺旋数组1.c 螺旋数组2.c ./文件程序: 实例1.c 实例2.c 实例3.c 文件加密.c 文件复制.c 文件连接.c 自我复制.c 读写文本文件.c 输出自已.c ./求进制: 16进制10进制.c 二...
  • 实例033 使用for循环输出杨辉三角 实例034 使用嵌套循环在控制台上输出九九乘法表 实例035 用while循环计算1+1/2!+1/3!…1/20! 实例036 for循环输出空心的菱形 实例037 foreach循环优于for循环 实例038 终止...
  • 实例033 使用for循环输出杨辉三角 实例034 使用嵌套循环在控制台上输出九九乘法表 实例035 用while循环计算1+1/2!+1/3!…1/20! 实例036 for循环输出空心的菱形 实例037 foreach循环优于for循环 实例038 终止...
  • 10.2.1 杨辉三角与二项式定理 182 10.2.2 数论中的计数问题 184 10.2.3 编码与解码 186 10.2.4 离散概率初步 187 10.3 递推关系 188 10.3.1 汉诺塔 188 10.3.2 Fibonacci数列 189 10.3.3 Catalan数 191 10.3.4 危险...
  • 实例150 C#实现杨辉三角算法 实例151 如何将B转换成GB、MB和KB 实例152 0~N位数的任意组合 实例153 在数组中快速查找近似值 实例154 猴子选大王算法的实现 实例155 使用MD5算法对密码进行加密 实例156 恺撒...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

杨辉三角全图