zoukankan      html  css  js  c++  java
  • 4.15杨辉三角

    Q打印6阶杨辉三角

    一:打印对称的杨辉三角

    #include <stdio.h>
    #include <math.h>
    int c(int x,int y){ //递归函数
    int z;
    if(y==1||y==x)return 1;
    z=c(x-1,y-1)+c(x-1,y);
    return z;
    }
    int main(int argc, const char * argv[])
    {
    
    int n;
    scanf("%d",&n);//输入行数
    for (int i=1; i<=n; i++) {
    for (int j=1; j<2*n-2*i+1; j++)printf(" ");//打印空格
    for (int j=1; j<=i; j++)printf("%4d",c(i,j));//输出数字时保留间隙
    
    printf("
    ");
    }
    return 0;
    }
    

      

    二:一般形式的杨辉三角

    #include <stdio.h>
    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("
    ");
       }
    }
    

     

    上述两种都是C的形式,下面给出C++的形式:

    #include <iostream>
    using namespace std;
    const int N = 40;
    int main() {
        int a[N][N];
        int n;
        cin >> n;
        for (int i = 0; i < n; i++) {
            a[i][0] = a[i][i] = 1;
            for (int j = 1; j < i; j++) {//注意此处的j不能等于i,不然最后结果有错
                a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
            }
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j <= i; j++) {
                cout << a[i][j] << " ";
            }
            cout << endl;
        }
        return 0;
    }
    

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    用select模拟一个socket server
    用select (多路复用)模拟一个 socket server
    IO模式
    IO多路复用
    进程、线程和协程的理解
    进程、线程和协程--自己的理解
    二维数组的初始化,遍历
    数组的练习
    练习1
    数组的内存结构
  • 原文地址:https://www.cnblogs.com/dd2hm/p/6772726.html
Copyright © 2011-2022 走看看