杨辉

基础练习_杨辉三角形(Java)

吃可爱长大的小学妹 提交于 2020-03-04 11:31:00
试题 基础练习 杨辉三角形 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 杨辉三角形又称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。 先分析一下杨辉三角形: 点击查看杨辉三角形的视频讲解 下边附上自己的分析 算法实现: import java . util . * ; public class Main { public static void main ( String [ ] args ) { Scanner sc = new Scanner ( System . in ) ; int n = sc . nextInt ( ) ; int a [ ] [ ] = new int [ n ] [ n ] ; //定义二维数组 System . out . println ( 1 ) ; //输出第一行的1 for ( int

杨辉三角形

孤者浪人 提交于 2020-02-29 02:52:59
问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。下面给出了杨辉三角形的前4行:  1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行。 输入格式 输入包含一个数n。 4 输出格式 输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。 1 1 1 1 2 1 1 3 3 1 数据规模与约定 1 <= n <= 34。 代码 # include <iostream> using namespace std ; int main ( ) { int n , m ; cin >> n ; int a [ 50 ] , b [ 50 ] ; for ( int i = 1 ; i <= n ; i ++ ) { for ( int j = 0 ; j < i ; j ++ ) { if ( j == 0 || j == i - 1 ) { printf ( "1 " ) ; b [ j ] = 1 ; } else { b [ j ] = a [ j ] + a [ j - 1 ] ; printf ( "%d " , b [ j ] ) ; } } for ( int j = 0 ; j < i ; j ++ ) {

基础练习 杨辉三角形

纵饮孤独 提交于 2020-02-16 19:30:25
我可能是在做一波水题练手感。 #include<iostream> #include<cstring> using namespace std; int main(){ int n; scanf("%d",&n); printf("1\n"); int up[35]; int down[35]; memset(up,0,sizeof(up)); memset(down,0,sizeof(down)); up[0]=1; for(int i=1;i<n;i++){ for(int j=0;j<=i;j++){ if(j==0||j==i){ down[j]=1; } else{ down[j]=up[j-1]+up[j]; } } for(int j=0;j<=i;j++){ printf("%d ",down[j]); up[j]=down[j]; } printf("\n"); } return 0; } 来源: CSDN 作者: han_hhh 链接: https://blog.csdn.net/han_hhh/article/details/104340539

【蓝桥杯】杨辉三角形

强颜欢笑 提交于 2020-02-15 11:21:34
问题描述 杨辉三角形又称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 # include <stdio.h> int main ( ) { int n , i , j ; scanf ( "%d" , & n ) ; int a [ n ] [ 34 ] ; for ( i = 0 ; i < n ; i ++ ) for ( j = 0 ; j < 34 ; j ++ ) { a [ i ] [ j ] = 0 ; a [ i ] [ 0 ] = 1 ; } printf ( "1 \n" ) ; for ( i = 1 ; i < n ; i ++ ) { printf ( "1 " ) ; for ( j = 1 ; j < 34 ; j ++ ) { a [ i ] [ j ] = a [ i - 1 ] [ j ] + a [ i - 1 ] [ j - 1 ] ; if ( a

试题 基础练习6 杨辉三角形

人盡茶涼 提交于 2020-02-08 18:00:56
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 杨辉三角形又称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。 # include <iostream> # include <set> # include <sstream> # include <string> # include <cmath> # include <vector> using namespace std ; int main ( ) { int n ; vector < long long > result [ 34 ] ; cin >> n ; for ( int i = 0 ; i < n ; i ++ ) for ( int j = 0 ; j <= i ; j ++ ) { if ( j == 0 || j == i ) {

蓝桥杯,杨辉三角形,Python

≯℡__Kan透↙ 提交于 2020-02-08 13:22:21
题目描述 问题描述 杨辉三角形又称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。 本题不难,但是因为踩了一个坑所以花了好长时间,我们先看错误代码: n = int(input(''))arr = [[]]*nfor i in range(n): for j in range(i+1): if j == 0 or i == j: arr[i].append(1) else: arr[i].append(arr[i-1][j-1] + arr[i-1][j]) print(" ".join(str(a) for a in arr[i])) n=4时,错误代码输出如下: 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 2 2 1 再输出arr如下: [[1, 1, 1, 1, 2, 1, 1, 2, 2, 1], [1, 1,

蓝桥杯 杨辉三角C语言解法

岁酱吖の 提交于 2020-02-05 02:15:01
问题描述 杨辉三角形又称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。 # include <stdio.h> int main ( ) { int i , j , n , t , sum ; scanf ( "%d" , & n ) ; int s [ 35 ] [ 35 ] ; //循环赋值为1 for ( i = 0 ; i < 35 ; i ++ ) { for ( j = 0 ; j <= i ; j ++ ) { s [ i ] [ j ] = 1 ; } } //计算中间值 for ( i = 0 ; i < n ; i ++ ) { for ( j = 1 ; j < i ; j ++ ) { s [ i ] [ j ] = s [ i - 1 ] [ j - 1 ] + s [ i - 1 ] [ j ] ; } } //循环输出

蓝桥杯-Python 基础练习 杨辉三角形

隐身守侯 提交于 2020-02-05 01:48:29
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 杨辉三角形又称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。 代码如下: n = int ( input ( ) ) ls = [ [ 1 ] , [ 1 , 1 ] , ] for i in range ( 2 , n ) : p = ls [ i - 1 ] cur = [ 1 ] for j in range ( i - 1 ) : cur . append ( p [ j ] + p [ j + 1 ] ) cur . append ( 1 ) ls . append ( cur ) for i in range ( n ) : for j in range ( i + 1 ) : if j == i : print ( ls [ i ] [ j ] , end = '\n'

蓝桥杯杨辉三角形,处理空白符

好久不见. 提交于 2020-02-04 13:16:00
问题描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行:    1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行。 输入格式 输入包含一个数n。 输出格式 输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。 ans=[[1],[1,1]] #初始化前两行 n=int(input()) #确定输出行数 for i in range(1,35): t=[] for k in range(1,len(ans[i])): t.append(ans[i][k-1]+ans[i][k]) t.insert(0,1) #上一行两数相加得到下一行元素 t.append(1) #再在首尾插入1 ans.append(t) for j in range(0,n): t=1 for k in ans[j]: if(t==len(ans[j])): print(k,end='') #print方法默认是end='\r',这样就可以不换行 else: print(k,end='') print(' ',end='')

蓝桥:杨辉三角

耗尽温柔 提交于 2020-01-29 11:05:53
蓝桥:杨辉三角 问题描述 杨辉三角形又称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。 问题分析 三角形中的每个数字等于它两肩上的数字相加。 a[2][1]=a[1][0]+a[1][1] 并且a[i][0]=a[i][i]=1 代码 import java.util.Scanner; public class 杨辉三角 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int arr[][]=new int[n][n]; for(int i=0;i<n;i++){ arr[i][0]=arr[i][i]=1; for(int j