杨辉三角形

在屏幕上打印出杨辉三角形。

       1
      1  1
     1  2  1
   1  3   3  1
  1  4  6   4  1
1  5  10  10  5  1

根据上图可以得到2个公式:
1)每行的第一个和最后一个为1
2)除上式得两个数外,其他数分别是上一行中的前一列和同一列的两数之和。

#include<stdio.h>

int add(int x,int y);

int main()
{
    int i,j,n=13;
    printf("N=");
    while(n>12)
        scanf("%d",&n);

    for(i=0;i<=n;i++)
    {
        for(j=0;j<24-2*i;j++)
            printf(" ");
        for(j=1;j<i+2;j++)
            printf("%4d",add(i,j));
        printf("\n");
    }

    return 0;
}

int add(int x,int y)
{
    int z;
    if((y==1)||(y==x+1))
        return 1;
    z=add(x-1,y-1)+add(x-1,y);

    return z;
}

欢迎大家点击左上角的“关注”或右上角的“收藏”方便以后阅读。




为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp

时间: 2024-11-01 21:02:38

杨辉三角形的相关文章

C++输出上三角/下三角/菱形/杨辉三角形

本篇文章是对C++中输出上三角/下三角/菱形/杨辉三角形的示例代码进行了详细的分析介绍,需要的朋友参考下   1.输出上三角形第一行1个星,第二行3个星,第三行5个星,第四行7个星,第五行9个星.分析:三角形的形状由输出的空白和星组成,通过分析每一行输出几个空格,几个星,就可完成输出三角形的工作. 复制代码 代码如下: #include<iostream> using namespace std; int main(){  int i=0,j=0;  for(i=1;i<=5;i++){

九度题目1073:杨辉三角形

题目1073:杨辉三角形 时间限制:1 秒内存限制:32 兆特殊判题:否提交:2903解决:1259 题目描述: 输入n值,使用递归函数,求杨辉三角形中各个位置上的值. 输入: 一个大于等于2的整型数n 输出: 题目可能有多组不同的测试数据,对于每组输入数据, 按题目的要求输出相应输入n的杨辉三角形. 样例输入: 6 样例输出: 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 来源: 2002年清华大学计算机研究生机试真题(第I套) AC代码: 方法一: 一般

编写程序,生成并输出杨辉三角形(10行)。

问题描述 编写程序,生成并输出杨辉三角形(10行). 在C语言中,运用数组,编写程序,生成并输出杨辉三角形(10行). 解决方案 http://blog.sina.com.cn/s/blog_49fb2853010004lt.html 解决方案二: 杨辉三角形的第n行的第m个元素等于n!/((n-m)!*m!) 因此编程如下 int x = 10; for (int n = 1; n < x; n++) { for (int m = 1; m <= n; m++) printf("%

c-V C + + 打印杨辉三角形

问题描述 V C + + 打印杨辉三角形 编写一个V C + +程序,输出杨辉三角形的前10行. 解决方案 #include main() { long i,j,k; for(i=1;i<=10;i++) { k=1; for(j=1;j<i;j++) { printf("%ld ",k); k=k*(i-j)/j; } printf("1n"); } } 解决方案二: /* *Copyright (c) 2014,烟台大学计算机学院 *ALL righ

C++输出上三角/下三角/菱形/杨辉三角形(实现代码)_C 语言

1.输出上三角形第一行1个星,第二行3个星,第三行5个星,第四行7个星,第五行9个星.分析:三角形的形状由输出的空白和星组成,通过分析每一行输出几个空格,几个星,就可完成输出三角形的工作. 复制代码 代码如下: #include<iostream>using namespace std;int main(){ int i=0,j=0; for(i=1;i<=5;i++){//控制行数      for(j=1;j<=(5-i);j++){      cout<<&quo

&lt;font color=&quot;red&quot;&gt;[置顶]&lt;/font&gt;

Profile Introduction to Blog 您能看到这篇博客导读是我的荣幸,本博客会持续更新,感谢您的支持,欢迎您的关注与留言.博客有多个专栏,分别是关于 Windows App开发 . UWP(通用Windows平台)开发 . SICP习题解 和 Scheme语言学习 . 算法解析 与 LeetCode等题解 . Android应用开发 ,而最近会添加的文章将主要是算法和Android,不过其它内容也会继续完善. About the Author 独立 Windows App 和

最新java编程50题及答案

[程序1]    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?    //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数:    1"); System.out.println("第2个月的兔子对数:    

C语言程序开发经典实例之七

[程序61] 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 2.程序源代码: main() { int i,j; int a[10][10]; printf("\n"); for(i=0;i<10;i++) { a[i][0]=1; a[i][i]=1;} for(i=2;i<10;i++) for(j=1;j<i;j++) a[i][j]=a[i-1][j-1

用Javascript打印杨辉三角

var arr = new Array(); for(var i = 0 ;i < 6 ; i++){ if(i == 0){arr.push(1);} else if(i == 1){arr = new Array();arr.push(1);arr.push(1);} else{ var arr2 = new Array(); arr2.push(1); for(var j = 0;j<arr.length - 1; j++){arr2.push(arr[j] + arr[j+1]);}