杨辉三角--生成器版

# 杨辉三角

def  triangle():
    li = [1]

    while True:
        yield li

        lis = []
        lis.extend([li[0]])
        for j in range(len(li)-1):
            lis.append((li[j]+li[j+1]))
        else:
            lis.extend([li[0]])
            li = lis

tri_list = triangle()

for i in range(10):
    print(next(tri_list))

原文地址:https://www.cnblogs.com/ibester/p/11619298.html

时间: 2024-10-14 08:55:35

杨辉三角--生成器版的相关文章

输出杨辉三角(C++和 JAVA版 )

C++版本: #include <iostream> using namespace std; void main() { int n=10; while(n!=-1) { cout<<"请输入 杨辉三角 行数:"; cin>>n; int **a = new int* [n]; for(int m = 0; m < n; m++) { a[m] = new int [n]; } for(int i=0;i<n;i++) { for(in

列表生成式的复习以及生成器的练习, 杨辉三角实例(非常巧妙)

列表生成式 print('昨日复习--------------------') d = {'a':1, 'b':2, 'c':3} for key in d: print(key) for value in d.values(): print(value) for k, v in d.items(): print(k, v) for ch in 'ABC': print(ch) from collections import Iterable t = isinstance(123, Iterab

杨辉三角(生成器generator)

生成器:(Python中,这种一边循环一边计算的机制,称为生成器:generator) 创建generator的方法: 1.把列表生成式的[]变为(),就创建了一个generator 例: 可以通过next()获得generator得下一个返回值 遍历的话可以直接用: for i in g: print(i) 2.将函数中的print(b)改为yield b,如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator   杨辉三角,期待输出效果: [1]

python生成器实现杨辉三角

1 def triangels(): 2 """ 3 杨辉三角 4 """ 5 lst = [1] 6 n_count = 2 # 下一行列表长度 7 while True: 8 yield lst 9 lst_n = list(range(0 ,n_count)) 10 lst = [1] + [lst[i-1]+lst[i] for i,v in enumerate(lst_n) if i!=0 and i!=n_count-1] + [1]

打印杨辉三角(STL版队列)

#include <iostream> #include <queue> using namespace std; void YangHuiTriangle(int n); int main() { cout<<"请输入杨辉三角的层数:"; int x; cin>>x; YangHuiTriangle(x); return 0; } void YangHuiTriangle(int n) { queue<int> q; q.p

ACM中杨辉三角的多种解法

杨辉三角的多种解法 杨辉三角的相信大家很熟悉吧,但是大家能用多少中方法写出来呀,一般人都只会想到两种,递归和二项式.当用递推时,有时在解题是根本没必要需要那么多呀,而只要杨辉三角的某一行,数据小时,我们可以用二项式来计算,但是数据比较大时,二项式算也是很麻烦的,那么还有其它的方法吗?所以下面我就介绍几种计算杨辉三角的方法吧. 主要要记住第四种.... 完整版下载:http://download.csdn.net/detail/u010304217/7750997 博客版下载:http://dow

第十四周OJ项目——杨辉三角

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作    者:李晓凯 * 完成日期:2014年 11 月 27 日 * 版 本 号:v1.0 * * 问题描述:根据二维数组输出杨辉三角 * 输入描述:输入一个整数确定行和列数 * 程序输出:输出杨辉三角 */ #include <iostream> using namespace std; int main() { int i,j,n; in

一个超强的杨辉三角python实现方法

廖雪峰Python教程——生成器 有这么一个习题: 练习 杨辉三角定义如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 把每一行看做一个list,试写一个generator,不断输出下一行的list: # -*- coding: utf-8 -*- def triangles(): 在评论里发现这么一个强大的答案: 1 N = [1] 2 while True: 3 yield N 4 N.append(0) 5 N = [N[i-1] + N[i]

二维数组打印杨辉三角

一共搞了三个版本~虽然核心算法是一样的,但是我说是三个就是三个!!! 一.普通版 let readline=require("readline-sync"); console.log("请输入杨辉三角的行数:"); let line = parseInt(readline.question("")); let arr=[[1],[1,1]]; for(let i=2;i<line;i++){ arr[i]=[]; for(let j=0;j