杨辉三角程序

mycs1a 2010-11-02 05:43:04
哪位高手能给我提供输出杨辉三角的源程序代码,将非常感激!
...全文
140 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zst04551 2012-11-19
  • 打赏
  • 举报
回复
用向量存储数据,编写程序计算杨辉三角,怎么编啊
ycproc 2011-04-02
  • 打赏
  • 举报
回复
百度 好吧

mycs1a 2011-04-02
  • 打赏
  • 举报
回复
上善若水 这哥们写得不错啊
porschev 2010-11-04
  • 打赏
  • 举报
回复
作业题。。。
烈火蜓蜻 2010-11-04
  • 打赏
  • 举报
回复
还有一种比较合理的方法

		/// <summary>
/// 打印杨辉三角型的某一层
/// </summary>
/// <param name="N">本次打印二项式N次方的系数</param>
public static void Print( int N )
{
for ( int k = 0; k <= N; k++ )
{
int V = 1;
int S = 1;
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;
S /= I;
}
else if ( V % S == 0 )
{
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++ )
{
Print( i );
}
}
烈火蜓蜻 2010-11-02
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 杨辉三角
{
public class Program
{
/// <summary>
/// 主函数
/// </summary>
/// <param name="args"></param>
public static void Main( string[] args )
{
PrintYangHui( 8 );

PrintYangHui( 8, 8 );

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="n"></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();
string spaceChar = " ";
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;
}
else
outString = new char[strNum.Length];

for ( int i = 0; i < outString.Length; i++ )
{
if ( i >= startIndex && i < startIndex + strNum.Length )
outString[i] = strNum[i - startIndex];
else
outString[i] = ' ';
}

return new String( outString );
}
}
}
OracleCer 2010-11-02
  • 打赏
  • 举报
回复
不会是作业吧?
zetima 2010-11-02
  • 打赏
  • 举报
回复
百度搜一下 很多~
devin_jia 2010-11-02
  • 打赏
  • 举报
回复
han.....

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧