杨辉三角

杨辉三角形

北城以北 提交于 2020-01-21 16:02:08
题目描述 打印杨辉三角形的前10行。杨辉三角形如下图: 1 1 1 1 2 1 1 3 3 1   1 4 6 4 1 输入 无输入。 输出 杨辉三角形前10行,输出格式见样例输出 样例输出 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 代码如下: # include <bits/stdc++.h> using namespace std ; int main ( ) { int a [ 100 ] [ 100 ] ; a [ 1 ] [ 1 ] = 1 ; for ( int i = 1 ; i <= 10 ; ++ i ) { a [ i ] [ i ] = 1 ; a [ i ] [ 1 ] = 1 ; for ( int j = 2 ; j <= i - 1 ; ++ j ) { a [ i ] [ j ] = a [ i - 1 ] [ j ] + a [ i - 1 ] [ j - 1 ] ; } } for ( int i = 1 ; i <= 10 ; ++ i ) { for ( int k = 1 ; k <= 30 - 3 * i ; ++ k

js手写杨辉三角

て烟熏妆下的殇ゞ 提交于 2020-01-19 20:32:25
思路: 初始化一个二维数组 循环遍历(第二层遍历两个 第三层遍历三个,以此类推) 最左边的位置统统填1 其他位置的值是左上方和正上方值相加(因为如果是右边边界,正上方刚好是初始化的0所以直接相加就可以了) // n为指定行数 function yanghui ( n ) { // 初始化二维数组 let dp = new Array ( n ) . fill ( 0 ) . map ( x => new Array ( n ) . fill ( 0 ) ) ; dp [ 0 ] [ 0 ] = 1 ; for ( var i = 1 ; i < n ; i ++ ) { dp [ i ] [ 0 ] = dp [ i - 1 ] [ 0 ] ; for ( var j = 1 ; j <= i ; j ++ ) { dp [ i ] [ j ] = dp [ i - 1 [ j - 1 ] + dp [ i - 1 ] [ j ] ; } } return dp ; } 来源: CSDN 作者: NoTelecom 链接: https://blog.csdn.net/yuanfangyoushan/article/details/104044557

《LeetCode笔记18》:杨辉三角

岁酱吖の 提交于 2020-01-19 16:57:17
题目: 给定一个非负整数 numRows, 生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 来源:力扣(LeetCode) 链接: https://leetcode-cn.com/problems/pascals-triangle/ 解法一: class Solution: def generate(self, numRows: int) -> List[List[int]]: lists = [] for i in range(numRows): x = 0 lists.append([0]*(i+1)) if i == 0: lists[0][0] = 1 continue if (i+1)%2==0: w = (i+1)//2 else: w = (i+1)//2+1 for j in range(w): lists[i][j] = x + lists[i-1][j] lists[i][i-j] = lists[i][j] x = lists[i-1][j] return lists 来源: CSDN 作者: xin3475 链接: https://blog.csdn.net/xin3475/article

杨辉三角问题——算法

陌路散爱 提交于 2020-01-18 00:58:24
杨辉三角形 问题描述 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行: 1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行。 输入格式 输入包含一个数n。 输出格式 输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。 样例输入 4 样例输出 1 1 1 1 2 1 1 3 3 1 数据规模与约定 1 <= n <= 34。 问题分析 注意元素的个数为:每行元素等于行数。 两端数字都为1,此数列可用二维数组来存取,且 a[0][0]=1 每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1) 。 代码实现 # include <iostream> # include <bits/stdc++.h> using namespace std ; int main ( ) { int n ; //表行数 cin >> n ; //输入行数 int a [ n ] [ n ] ; //定义足够大范围的数组 for ( int i = 0

打印杨辉三角 (20分)

别等时光非礼了梦想. 提交于 2020-01-14 23:50:36
本题要求按照规定格式打印前N行杨辉三角。 输入格式: 输入在一行中给出N(1≤N≤10)。 输出格式: 以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。 输入样例: 6 输出样例: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 # include <stdio.h> int main ( ) { int i , j , k ; int s = 0 ; int a [ 100 ] [ 100 ] ; scanf ( "%d" , & k ) ; for ( i = 0 ; i < k ; i ++ ) { for ( j = 0 ; j < k - i - 1 ; j ++ ) { printf ( " " ) ; } for ( j = 0 ; j < i + 1 ; j ++ ) { if ( i < 2 || j == i || j < 1 ) { a [ i ] [ j ] = 1 ; } else { a [ i ] [ j ] = a [ i - 1 ] [ j - 1 ] + a [ i - 1 ] [ j ] ; } printf ( "%4d" , a [ i ] [ j ] ) ; } printf ( "\n" ) ; } return 0 ; } 来源: CSDN 作者: 无忧MG 链接: https:/

杨辉三角_蓝桥杯

此生再无相见时 提交于 2020-01-12 19:00:24
循环 数组 /** 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。    它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。    下面给出了杨辉三角形的前4行:    1    1 1    1 2 1    1 3 3 1    给出n,输出它的前n行。 输入格式 输入包含一个数n。 输出格式 输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。 样例输入 4 样例输出 1 1 1 1 2 1 1 3 3 1 数据规模与约定 1 <= n <= 34。 */ package jiChuLianXi; import java.util.Scanner; public class PascalTriAngle { public static void PasTAngle(int n){ int arr[][] = new int[(1+n)*n/2+1][(1+n)*n/2+1]; arr[1][1] = 1; if(n>1){ for(int i=2; i<=n; i++){ arr[i][1] = 1; for(int j=2; j<i; j++){ arr[i][j] = arr[i-1][j-1] + arr[i-1][j]; } arr[i][i] = 1;

蓝桥——杨辉三角

爷,独闯天下 提交于 2019-12-29 23:55:29
杨辉三角 我的程序 import java . util . Scanner ; public class Main { public static void main ( String [ ] args ) { Scanner in = new Scanner ( System . in ) ; int n = in . nextInt ( ) ; in . close ( ) ; int [ ] [ ] a = Array ( n ) ; printA ( a , n ) ; } public static int [ ] [ ] Array ( int n ) { int [ ] [ ] a = new int [ n ] [ n ] ; for ( int i = 1 ; i <= n ; i ++ ) { for ( int j = 1 ; j <= i ; j ++ ) { if ( i == j || j == 1 ) { a [ i - 1 ] [ j - 1 ] = 1 ; } else if ( i > 1 ) { a [ i - 1 ] [ j - 1 ] = a [ i - 2 ] [ j - 2 ] + a [ i - 2 ] [ j - 1 ] ; } } } return a ; } public static void printA ( int a

HDU 2032 杨辉三角

岁酱吖の 提交于 2019-12-29 22:35:16
Problem Description 还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 Input 输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。 Output 对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。 Sample Input 2 3 Sample Output 1 1 1 1 1 1 1 2 1 # include <stdio.h> int main ( ) { int n , i , j ; int a [ 30 ] [ 30 ] ; while ( ~ scanf ( "%d" , & n ) ) { a [ 0 ] [ 0 ] = 1 ; a [ 0 ] [ 1 ] = 0 ; if ( n == 1 ) { printf ( "%d\n" , a [ 0 ] [ 0 ] ) ; } else { printf ( "%d\n" , a [ 0 ] [ 0 ] ) ; for ( i = 1 ; i < n ; i ++ ) { for ( j = 0 ; j <= i ; j ++ ) { if ( j == 0 ||

杨辉三角

偶尔善良 提交于 2019-12-23 04:24:50
class Solution: def generate(self, numRows: int) -> List[List[int]]: result = [] if numRows == 0: return [] i = 0 j = 0 while(i < numRows): temp_result = [] while(j < i + 1): if j == 0 or j == i: temp_result.append(1) else: temp_result.append(result[i-1][j-1] + result[i-1][j])#找规律就行 j += 1 result.append(temp_result) i += 1 j = 0 return result 来源: CSDN 作者: JustForYouForDL 链接: https://blog.csdn.net/JustForYouForDL/article/details/103656611

PTA——7-4 打印杨辉三角

戏子无情 提交于 2019-12-16 01:50:35
本题要求按照规定格式打印前N行杨辉三角。 输入格式: 输入在一行中给出N(1≤N≤10)。 输出格式: 以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。 输入样例: 6 输出样例: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 //4 # include <stdio.h> int main ( ) { int n , i , j , k , a [ 11 ] [ 11 ] ; scanf ( "%d" , & n ) ; for ( i = 1 ; i <= n ; i ++ ) { for ( j = 1 ; j <= i ; j ++ ) { if ( j == 1 || i == j ) a [ i ] [ j ] = 1 ; else a [ i ] [ j ] = a [ i - 1 ] [ j ] + a [ i - 1 ] [ j - 1 ] ; } } for ( i = 1 ; i <= n ; i ++ ) { for ( k = n - i ; k >= 1 ; k -- ) { printf ( " " ) ; } for ( j = 1 ; j <= i ; j ++ ) { printf ( "%4d" , a [ i ] [ j ] ) ; if ( j == i ) printf ( "\n" )