利用yield关键字输出杨辉三角
最近学习了下python,发现里面也有yield的用法,本来对C#里的yield不甚了解,但是通过学习python,对于C#的yield理解更深了!!
不多说了,小学生水平的表达能力伤不起....
直接上代码:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication2
{
class Program
{ static void Main(string[] args)
{
foreach (var obj in YHSJ(8))
{
PrintRow(obj);
}
Console.ReadKey();
} /// <summary>
/// 取得杨辉三角的迭代器
/// </summary>
/// <param name="n"></param>
/// <returns></returns>
public static IEnumerable<IEnumerable<int>> YHSJ(int n)
{
//第一行
List<int> row = new List<int> { 1 };
yield return row;
//第二行
row = new List<int> { 1, 1 };
yield return row;
//第三行及其之后的
while (n > 0)
{
List<int> newrow = new List<int> { 1, 1 };
int index = row.Count;
for (int i = 1; i < index; i++)
{
newrow.Insert(1, row[i - 1] + row[i]);
}
yield return newrow;
row = newrow;
n--;
}
} /// <summary>
/// 打印一行数据
/// </summary>
/// <param name="row"></param>
public static void PrintRow(IEnumerable<int> row)
{
foreach (int i in row)
{
Console.Write(i + "\t");
}
Console.WriteLine();
}
}
}
利用yield关键字输出杨辉三角的更多相关文章
- 08-使用for循环输出杨辉三角(循环)
/** * 使用循环输出杨辉三角 * * */ public class Test6 { public static void main(String[] args) { // 创建二维数组 int ...
- 使用for循环输出杨辉三角-还是不懂得需要复习
package com.chongrui.test; /* *使用for循环输出杨辉三角杨辉三角形由数字排列,可以把它看作一个数字表,其基本特征是两侧的数值均为1,其他位置的数值是其正上方的数值与左上 ...
- C语言实现输出杨辉三角
1.倒推法实现输出杨辉三角右半部分,代码如下: #include<stdio.h> int main() { ]; printf("请输入行数n:"); scanf(& ...
- php输出杨辉三角
php输出杨辉三角 一.截图 二.代码 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- 1233: 输出杨辉三角前n行(Java)
WUSTOJ 1233: 输出杨辉三角前n行 题目 原题链接 Description 输出杨辉三角前n行. Input 输入一个数n(n <= 9) Output 输出杨辉三角前n行.(注意行末 ...
- 用java输出杨辉三角
杨辉三角:它的两个边都是1,内部其它都是肩上两个数的和 第一种: package aaa; public class YangHui { public static void main(String[ ...
- java例题_33 等腰输出杨辉三角
1 /*33 [程序 33 杨辉三角] 2 题目:打印出杨辉三角形(要求打印出 10 行如下图) 3 程序分析: 4 1 5 1 1 6 1 2 1 7 1 3 3 1 8 1 4 6 4 1 9 1 ...
- python输出杨辉三角
使用python列表,展示杨辉三角 # !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan yanghui = [] fo ...
- Java使用for循环输出杨辉三角
杨辉三角形由数字排列,可以把它看做一个数字表,其基本特性是两侧数值均为1,其他位置的数值是其正上方的数字与左上角数值之和.编写程序,使用for循环输出包括10行在内的杨辉三角形. 思路是创建一个整型二 ...
随机推荐
- python字符串和列表
import sys#sys.argv[0] 被设定为指定模块的全名#脚本名和附加参数传入一个名为 sys.argv 的字符串列表.你能够获取这个列表通过执行 import sys,列表的长度大于等于 ...
- 一个简单的例子说明windows环境变量配置
关于win下环境变量的问题 配置环境变量其实就像是创建一个快捷键一样,我们把安装程序的路径告诉系统环境变量,这样下次我们在命令行中就可以直接使用一个简单的命令来调用我们安装的程序,因为此时计算机已经知 ...
- CSU 1812 三角形和矩形
湖南省第十二届大学生计算机程序设计竞赛$J$题 计算几何. #pragma comment(linker, "/STACK:1024000000,1024000000") #inc ...
- 从后台调用前台js
引用: using System.Web.UI; ScriptManager.RegisterClientScriptBlock(this, GetType(), "Js", &q ...
- [Q]pdfFactory虚拟打印机的安装
安装打图精灵过程中会提示是否安装pdfFactory虚拟打印机,建议选择安装. 若未安装,在安装打图精灵之后想安装pdfFactory,该软件可以在打图精灵应用程序文件夹下找到( 系统"开始 ...
- MyEclipse2014拷贝web工程
z哎myeclipse2014中,复制web项目 Ctrl+C复制原项目Ctrl+V粘贴并输入新的项目名称项目名 ---> 右键 ---> propertes ---> MyEcli ...
- React添加自定义属性
使用‘data-’前缀即可,代码举例 render(){ return ( <ul className={css.forUl}> { this.props.todo.map(functio ...
- bit、byte、k
bit(位/比特位):一个二进制数据0/1 byte(字节):简称B:1byte=8bit:一个英文字符占用1byte,一个汉字占用2byte k:1K=1024B M:1M=1024K
- SPA UI-router
------------------------------------------------------------------------------------ SPA SPA(单页面应用): ...
- iis服务器上面使用百度编辑器ueidtor提示“找不到临时文件”需要给window/temp修改权限
iis服务器上面使用百度编辑器ueidtor提示“找不到临时文件”需要给window/temp修改权限,修改php上传临时文件window/temp 给user用户组读取和写入的权限