杨辉三角

python——杨辉三角

喜你入骨 提交于 2020-03-30 15:07:22
1、定义: 2、基于定义打印 # -*- coding:utf-8 -*- # version:python3.7 n = 6 triangle = [[1],[1,1]] for i in range(2,n): #已经给出前两行,所以求剩余行 cur = [1] #定义每行第一个元素 pre = triangle[i-1] #上一行 for j in range(i-1): #算几次 cur.append(pre[j] + pre[j+1]) cur.append(1) triangle.append(cur) print(triangle) 执行结果: [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1]] # -*- coding:utf-8 -*- # version:python3.7 n = 6 triangle = [] for i in range(n): cur = [1] triangle.append(cur) #先追加进去 if i == 0: continue pre = triangle[i-1] for j in range(i-1): cur.append(pre[j] + pre[j+1]) cur.append(1) print(triangle

lc0324

一曲冷凌霜 提交于 2020-03-24 21:44:14
目录 ✅ 119. 杨辉三角 II 描述 解答 c/Java py ✅ 119. 杨辉三角 II https://leetcode-cn.com/problems/pascals-triangle-ii/ 描述 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 解答 他人: c/Java /** * 获取杨辉三角的指定行 * 直接使用组合公式C(n,i) = n!/(i!*(n-i)!) * 则第(i+1)项是第i项的倍数=(n-i)/(i+1); */ public List<Integer> getRow(int rowIndex) { List<Integer> res = new ArrayList<>(rowIndex + 1); long cur = 1; for (int i = 0; i <= rowIndex; i++) { res.add((int) cur); cur = cur * (rowIndex-i)/(i+1); } return res; } --- int* getRow(int rowIndex, int* returnSize) { *returnSize = rowIndex + 1; int* num = (int*) malloc ((rowIndex + 1) * sizeof(int)); for(int i =

用C++实现:杨辉三角形打印

血红的双手。 提交于 2020-03-14 15:28:48
问题描述 杨辉三角形又称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,中间的项为上一行相应两个相邻数的和。故单列首尾,中间项另外算。 1 #include<iostream> 2 using namespace std; 3 int main(void) 4 { 5 int n; 6 cin >> n; 7 int(*arr)[34] = new int[n][34]; //创建二维数组 8 for (int i = 0; i < n; i++) //每行第一个数和最后一个数都是1 9 { 10 arr[i][0] = 1; 11 arr[i][i] = 1; 12 } 13 for (int i = 2; i < n; i++) 14 { 15 for (int j = 1; j

杨辉三角形

ε祈祈猫儿з 提交于 2020-03-12 12:18:24
#include<stdio.h> int main() { int i,j,a[10][10]; for(i=0;i<10;i++) for(j=0;j<=i;j++) { if(j==0||i==j) a[i][j]=1; else a[i][j]=a[i-1][j]+a[i-1][j-1]; } for(i=0;i<10;i++) {for(j=0;j<=i;j++) printf("%d ",a[i][j]); printf("\n"); } return 0; } 来源: CSDN 作者: Killwaiter 链接: https://blog.csdn.net/zhangxue1232/article/details/104814445

c++杨辉三角

泪湿孤枕 提交于 2020-03-12 04:58:54
#include<iostream> using namespace std; int main() { int a[10][10];//设置一个10*10的数组 for (int i = 0; i < 10; i++) { for (int j = 0; j <= i; j++) { a[i][0] = a[i][i] = 1;//每行的第一个和最后一个=1 } } for (int i = 2; i < 10; i++) { for (int j = 1; j < i; j++) { if (i != j) a[i][j] = a[i - 1][j - 1] + a[i - 1][j];//杨辉三角的公式,上一行两个数相加 } } for (int i = 0; i < 10; i++) { for (int j = 0; j <= i; j++) { cout << a[i][j] << " ";//输出数组 } cout << endl;//输出一行换一行 } return 0; } 刚学,有不足之处请多多指教 来源: CSDN 作者: shenhaibb_ 链接: https://blog.csdn.net/shenhaibb_/article/details/104798383

杨辉三角

放肆的年华 提交于 2020-03-10 10:39:54
样例输入n=4,输出如下 1 1 1 1 2 1 1 3 3 1 代码 def updata(lis): length=len(lis) for j in range(length-1,0,-1): lis[j]=lis[j-1]+lis[j] #数组从后往前更新 lis.append(1) #新列表最后增添1 return lis if __name__=='__main__': n=int(input()) lis=[1] if n==1: print('1') else: print('1') for i in range(n-1): lis=updata(lis) print(' '.join(str(i) for i in lis)) 来源: https://www.cnblogs.com/thgpddl/p/12453880.html

leetcode 119——杨辉三角Ⅱ

梦想的初衷 提交于 2020-03-06 23:53:50
leetcode 119——杨辉三角Ⅱ 题目描述: 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 3 输出: [1,3,3,1] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/pascals-triangle-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 提交: class Solution { public : vector < int > getRow ( int rowIndex ) { vector < int > ans ; for ( int i = 0 ; i <= rowIndex ; ++ i ) { ans . push_back ( 1 ) ; for ( int j = i - 1 ; j > 0 ; -- j ) { ans [ j ] + = ans [ j - 1 ] ; } } return ans ; } } ; 来源: CSDN 作者: 菜菜的哈士奇 链接: https://blog.csdn.net/weixin_44795839/article/details/104704368

基础练习_杨辉三角形(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

58 杨辉三角

烈酒焚心 提交于 2020-03-01 05:25:14
58 杨辉三角 作者: xxx时间限制: 1S章节: 二维数组 问题描述 : 还记得中学时候学过的杨辉三角吗? 基本的特征是: 前提:端点的数为1. 每个数等于它上方两数之和。 每行数字左右对称,由1开始逐渐变大。 第n行的数字有n项。 你可以参考以下的图形: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15   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 1 10 45 120 210 252 210 120 45 10 1 1 11 55 165 330 462 462 330 165 55 11 1 1 12 66 220 495 792 924 792 495 220 66 12 1 … 输入说明 : 输入数据首先包含一个正整数T ( T < 10 ),表示有 T 组测试数据, 每组测试数据只包含一个正整数n(1 <= n <= 20),表示将要输出的杨辉三角的层数。 输出说明 : 对应于每一个输入,请输出相应层数的杨辉三角,输出的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。 输出时,每一行的开头的“1”前面不需要空格,结尾的

python3:打印杨辉三角

孤街浪徒 提交于 2020-02-29 17:39:47
#!/usr/bin/env python3 ''' 打印杨辉三角 ''' def triangle(): yield [1] yield [1, 1] upline = [1, 1] count = 0 while True: count += 1 line = [1] for x in range(count): line.append(upline[x] + upline[x + 1]) line.append(1) yield line upline = line if __name__ == '__main__': yang = triangle() for x in range(10): print(next(yang)) yang = triangle() row = 6 width = 2 for x in range(row): l = [ str(e).center(width) for e in next(yang)] print(''.join(l).center(row * width)) 来源: CSDN 作者: qq_41572664 链接: https://blog.csdn.net/qq_41572664/article/details/104573521