杨辉三角

面试的时候总会遇到手写杨辉三角算法,当时是一脸懵逼,过了那么长时间,终于下定决心好好研究研究.

1.首先使用c++:


// 杨辉三角
void YangHuifunction(){
    // 1. 初始化,都赋值为0
    int arr[10][10];
    for (int x = 0; x<10; x++) {
        for (int y = 0; y< x; y++) {
            arr[x][y] = 0;
        }
    }
    // 2.设置每一行的第一列和最后一列都是 1
    for (int i = 0;i<=10 ;i++) {
        arr[i][0] = 1;
        arr[i][i] = 1;
    }
    // 3.赋值
    for (int i = 2; i<10; i++) {
        for (int j = 1; j< i; j++) {
            // 等于上一行的第j-1列和第j列的和
            arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
        }
    }
    // 4.打印结果
    for (int x = 0; x<10; x++) {
        for (int y = 0; y<= x; y++) {
            cout<<arr[x][y]<< "  " ;
        }
        cout<<endl;
    }
}

2.swift语言:

    func YangHuiFunction(){
        // 1.初始化
        let n = 10
        // 根据行数初始化一个二维数组 
        var arr = [[Int]](repeating: [], count: n)
        // 根据每一行个数初始化每一行
        for i in 0..<arr.count
        {
            arr[i] += [Int](repeating: 0, count: i + 1)
        }
        // 2.赋值
      for i in 0..<arr.count
      {
            for j in 0..<arr[i].count
            {
                if j == 0 || j == i
                {
                    arr[i][j] = 1
                }
            else {
                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]
                }
            }
        }
        
        // 3.打印
        for i in 0..<arr.count {
            // 当前行开始打印前,打印一定的空格 
            for _ in 0..<arr.count - 1 - i {
                print(" ", terminator: "") }
            // 打印当前行的数字 
            for j in arr[i] {
                print(j, terminator: " ")
            }
            // 换行 
            print("")
        }
            
         
    
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容