杨辉三角型打印

注:

利用杨辉三角形可以快速的列出牛顿二项式分解。
如:杨辉三角第6行值是 1 6 15 20 15 6 1
对应的二项式分解就是
( m + n ) 6 = m 6 + 6 m 5 n + 15 m 4 n 2 + 20 m 3 n 3 + 15 m 2 n 4 + 6 m n 5 + n 6 (m+n)^6=m^6+6m^5n+15m^4n^2+20m^3n^3+15m^2n^4+6mn^5+n^6 (m+n)6=m6+6m5n+15m4n2+20m3n3+15m2n4+6mn5+n6

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace 杨辉三角
{public class Program{private const string spaceChar = "      ";/// <summary>/// 主函数/// </summary>/// <param name="args"></param>public static void Main( string[] args ){PrintYangHui( 13 );//PrintYangHui( 8, 8 );YangHui( 13 );Console.ReadLine();}/// <summary>/// 递归调用-打印三角形/// </summary>/// <param name="n"></param>/// <returns></returns>public static int[] PrintYangHui( int n ){if ( n == 1 ) return Print( new int[] { 1 } );if ( n == 2 ){PrintYangHui( n - 1 );return Print( new int[] { 1, 1 } );}int[] pR = PrintYangHui( n - 1 );int[] R = new int[n];R[0] = 1;for ( int i = 1; i < R.Length - 1; i++ ) R[i] = pR[i] + pR[i - 1];R[R.Length - 1] = 1;return Print( R );}/// <summary>/// 格式化输出到控制台的样式/// </summary>/// <param name="result"></param>public static int[] Print( int[] result ){StringBuilder Space = new StringBuilder();string spaceChar = "      ";for ( int i = 0; i < result.Length; i++ ) Console.Write( result[i].ToString() + spaceChar );Console.WriteLine();return result;}/// <summary>/// 打印居中的杨辉三角形/// </summary>/// <param name="totalLevel">总的层次数,用来控制第一行的前面需要多少个分隔符</param>/// <param name="level ">打印第几层</param>/// <returns></returns>public static int[] PrintYangHui( int totalLevel, int level ){if ( Level == 1 ) return Print( totalLevel, new int[] { 1 } );if ( Level == 2 ){PrintYangHui( totalLevel, Level - 1 );return Print( totalLevel, new int[] { 1, 1 } );}int[] pR = PrintYangHui( totalLevel, Level - 1 );int[] R = new int[Level];R[0] = 1;for ( int i = 1; i < R.Length - 1; i++ ) R[i] = pR[i] + pR[i - 1];R[R.Length - 1] = 1;return Print( totalLevel, R );}/// <summary>/// 打印居中的杨辉三角形/// </summary>/// <param name="result"></param>public static int[] Print( int totalLevel, int[] result ){StringBuilder Space = new StringBuilder();for ( int i = totalLevel; i > result.Length; i-- ) Space.Append( spaceChar );Console.Write( Space );for ( int i = 0; i < result.Length; i++ ) Console.Write( FormatString( 5, result[i] ) + spaceChar );Console.WriteLine();return result;}/// <summary>/// 格式化数字串/// </summary>/// <param name="Len"></param>/// <param name="num"></param>/// <returns></returns>public static string FormatString( int Len, int num ){char[] outString;string strNum = num.ToString();int startIndex = 0;if ( strNum.Length < Len ){outString = new char[Len];startIndex = ( Len - strNum.Length ) / 2;}elseoutString = new char[strNum.Length];for ( int i = 0; i < outString.Length; i++ ){if ( i >= startIndex && i < startIndex + strNum.Length )outString[i] = strNum[i - startIndex];elseoutString[i] = ' ';}return new String( outString );}/// <summary>/// 打印杨辉三角型的某一层,通过位置,计算出每层每个位置的数值,节省运行空间/// </summary>/// <param name="N">本次打印二项式N次方的系数</param>public static void Print( int N ){for ( int k = 0; k <= N; k++ ){int V = 1; // 用来保存N阶乘除以i阶乘的值int S = 1; // 用来保存N-i的阶乘int I = 0;for ( int i = k + 1; i <= N; i++ )	// N阶除以(N-i)阶后再除以i阶{V *= i;I = ( N - i + 1 );S *= I;if ( V % I == 0 )// 如果此时V可以被I整除,就先整除,以免最终V的阶乘太大导致数据溢出{V /= I;S /= I;}else if ( V % S == 0 )// 如果此时V可以被S整除,就先整除,以免最终V的阶乘数太大导致数据溢出{V /= S;S = 1;}}V /= S;Console.Write( V.ToString() + spaceChar );}Console.WriteLine();}/// <summary>/// 打印居中的杨辉三角形/// </summary>/// <param name="n"></param>/// <returns></returns>public static void YangHui( int totalLevel){for ( int i = 0; i < totalLevel; i++ ){//StringBuilder Space = new StringBuilder();//for ( int j = TotalLevel; j > i; j-- ) Space.Append( spaceChar );//Console.Write( Space );Print( i );}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/587728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NLP项目之语种识别

目录 1. 代码及解读2. 知识点n-grams仅保留最常见的1000个n-grams。意思是n1000 ? 1. 代码及解读 in_f open(data.csv) lines in_f.readlines() in_f.close() dataset [(line.strip()[:-3], line.strip()[-2:]) for line in lines] print(dataset[:5])[(1 december wereld…

付费进群系统源码带定位完整独立版(12月30日)再次修复首发

搭建教程 nginx1.2 php5.6–7.2均可 最好是7.2 第一步上传文件程序到网站根目录解压 第二步导入数据库&#xff08;shujuku.sql&#xff09; 第三步修改/config/database.php里面的数据库地址 第四步修改/config/extra/ip.php里面的域名 第四步设置伪静态thinkphp 总后台账号&…

2023年度个人总结

现在是北京时间2023年12月31日 下午17:13&#xff0c;再有不到7个小时就要迈入2024年。回望2023年真的是一言难尽&#xff0c;苦不堪言&#xff0c;不管是工作上还是生活中都经历了重重困难&#xff0c;肉体和精神上都备受折磨&#xff0c;特别痛苦。2023年是特别的艰辛、痛苦、…

ArkUI中自定义组件的生命周期

文章概叙 本文主要是介绍下在作为page以及component的时候的生命周期&#xff0c;以及调用API等应该在哪个生命周期使用。 书接上回 之前的博客已经结束了对底部栏的操作&#xff0c;现在开始需要关注到具体内容的对接了。 而开发的第一步&#xff0c;我们对页面的生命周期…

探索抖音详情API:塑造未来的媒体交互

一、引言 随着数字媒体的迅猛发展&#xff0c;抖音作为全球领先的短视频平台&#xff0c;其API接口为开发者提供了无尽的创新机会。了解抖音详情API的请求格式与参数&#xff0c;是每位有远见的开发者和媒体策划者的必修课。本文将深入剖析API的内在逻辑与潜力&#xff0c;为您…

Windows 产品历史

Windows 1.0&#xff5e;3.0概述 Windows 3.1及以前版本均为16位系统&#xff0c;因而不能充分利用硬件迅速发展的强大功能。同时,它们只能在MS-DOS上运行&#xff0c;必须与MS-DOS共同管理系统资源,故它们还不是独立的、完整的操作系统。1995年推出的Windows 95已摆脱MS-DOS的…

Vue懒加载深度解析:提升性能、优化用户体验的完整指南

文章目录 &#x1f333;引言&#x1f333;Vue懒加载基础&#x1f332;什么是懒加载&#xff1f;&#x1f332;组件级懒加载&#x1f332;图片懒加载 &#x1f333;懒加载的原理与优势&#x1f332;组件懒加载原理&#x1f332;图片懒加载原理&#x1f332;懒加载的优势 &#x…

最后一次纪念在泰山OFFICE的日子,明年开源量子OFFICE

今天去泰山在无锡的办公地点&#xff0c;给门卫送了一点零食表示感谢。送了之后&#xff0c;我也没进去怀旧&#xff0c;然后就去附近的南山&#x26e50;礼佛求福。 2021年的最后一天&#xff0c;公司举办了迎新活动。看了恍如隔世。我怀念泰山OFFICE&#xff0c;是因为在这里…

上海周边公路骑行路线分享,维乐带你抓住秋天的小尾巴

路线一&#xff1a;松江郊里骑行      在魔都上海&#xff0c;藏着一条自然风景适宜&#xff0c;能眺望黄浦江的美丽骑行路线。导航到华长路杨家角就能到达起点&#xff0c;一路向西&#xff0c;这里路况非常好&#xff0c;只有一条小道&#xff0c;没有汽车的障碍&#xf…

25、WEB攻防——通用漏洞SQL读写注入MYSQLMSSQLPostgreSQL

文章目录 Mysql-root高权限读写注入PostgreSQL——dba高权限读写注入Mssql-sa高权限读写注入 Access无高权限注入点——只能猜解&#xff0c;而且是暴力猜解&#xff1b; MYSQL&#xff0c;PostgreSQL&#xff0c;MSSQL(SQL server)高权限注入点——可升级读写&#xff08;文件…

学习体系结构 - AArch64 异常模型

学习体系结构 - AArch64 异常模型 Learn the architecture - AArch64 Exception Model version 1.3 根据DeepL翻译 校准 1、Overview AArch64异常模型指南&#xff0c;介绍了Armv8-A和Armv9-A中的异常和特权模型。它涵盖了Arm架构中不同类型的异常以及处理器在处理异常时的行…

12/31

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;用于密集预测的多路径视觉Transformer1、研究背景2、方法提出3、相关方法3.1、Vision Transformers for dense predictions3.2、C…

GAMES101:作业4记录

文章目录 总览算法编写代码&#xff1a;recursive_bezier()的实现Bezier()函数的实现提高部分&#xff1a;反走样 总览 Bzier 曲线是一种用于计算机图形学的参数曲线。在本次作业中,你需要实现 de Casteljau 算法来绘制由 4 个控制点表示的 Bzier 曲线 (当你正确实现该算法时,…

一次 irq_fpu_usable 内核报错排查总结

开发了一个内核ko模块async_memory_reclaim_for_cold_file_area(内核版本5.14.0-284.11.1)&#xff0c;使用kprobe技术捕捉内核copy_page_to_iter()函数&#xff0c;在里边执行自定义的hot_file_update_file_status()函数&#xff0c;统计文件页page的访问信息&#xff0c;源码…

亚信安慧AntDB数据库两项目分别入选2023“星河”标杆、优秀案例

近日&#xff0c;由中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会&#xff08;CCSA TC601&#xff09;共同组织的第七届大数据“星河&#xff08;Galaxy&#xff09;”案例评选结果公示&#xff0c;亚信安慧AntDB数据库两项目入选&#xff0c;其中“基于Ant…

国图公考:研究生可以考选调生吗?

研究生可以报考选调生吗?当然是可以的&#xff0c;但是同样需要满足一定的条件才可以。 除本科生外&#xff0c;具有硕士、博士学位的考生均可申请考试。但是&#xff0c;除了满足应届毕业生的身份&#xff0c;还需要满足年龄限制。一般来说&#xff0c;本科生不超过25岁&…

Kubernetes集群部署Rook Ceph实现文件存储,对象存储,块存储

Kubernetes集群部署Rook Ceph部署Ceph集群 1. Rook Ceph介绍 Rook Ceph是Rook项目中的一个存储方案&#xff0c;专门针对Ceph存储系统进行了优化和封装。Ceph是一个高度可扩展的分布式存储系统&#xff0c;提供了对象存储、块存储和文件系统的功能&#xff0c;广泛应用于提供…

FTP简介FTP服务器的搭建【虚拟机版】以及计算机端口的介绍

目录 一. FTP简介 二. FTP服务器的搭建【虚拟机Windows2012版】 1. 启用防火墙 2. 打开服务器管理器➡工具➡计算机管理 3. 选择本地用户与组➡新建组 4. 给组命名&#xff0c;输入描述&#xff0c;点击创建 5. 新建用户&#xff0c;设置用户名称&#xff0c;添加描述&a…

传感器原理与应用复习--光电式与半导体式传感器

文章目录 上一篇光电传感器光电器件 光纤传感器光纤传感器的工作原理及组成 半导体传感器下一篇 上一篇 传感器原理与应用复习–磁电式与霍尔传感器 光电传感器 光电器件 每个光子的能量为 E h v E hv Ehv h为普朗克常数 6.626 ∗ 1 0 − 34 ( J / s ) 6.626 * 10^{-…

【ARMv8M Cortex-M33 系列 2.3 -- SEGGER JFlash 烧写命令介绍】

请阅读【嵌入式开发学习必备专栏 之Cortex-M33 专栏】 文章目录 SEGGER JFlash 烧写命令介绍JFlash 配置文件 固件烧写地址介绍确定烧写地址 SEGGER JFlash 烧写命令介绍 本文以介绍烧写 Renesas RA4M2 为例&#xff0c;对 JFlash 进行简单介绍。它是 ARM Cortex-M33 微控制器…