Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
25
Task/Pascals-triangle/C-sharp/pascals-triangle-1.cs
Normal file
25
Task/Pascals-triangle/C-sharp/pascals-triangle-1.cs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
using System;
|
||||
|
||||
namespace RosettaCode {
|
||||
|
||||
class PascalsTriangle {
|
||||
|
||||
public static void CreateTriangle(int n) {
|
||||
if (n > 0) {
|
||||
for (int i = 0; i < n; i++) {
|
||||
int c = 1;
|
||||
Console.Write(" ".PadLeft(2 * (n - 1 - i)));
|
||||
for (int k = 0; k <= i; k++) {
|
||||
Console.Write("{0}", c.ToString().PadLeft(3));
|
||||
c = c * (i - k) / (k + 1);
|
||||
}
|
||||
Console.WriteLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void Main() {
|
||||
CreateTriangle(8);
|
||||
}
|
||||
}
|
||||
}
|
||||
48
Task/Pascals-triangle/C-sharp/pascals-triangle-2.cs
Normal file
48
Task/Pascals-triangle/C-sharp/pascals-triangle-2.cs
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace RosettaCode
|
||||
{
|
||||
public static class PascalsTriangle
|
||||
{
|
||||
public static IEnumerable<BigInteger[]> GetTriangle(int quantityOfRows)
|
||||
{
|
||||
IEnumerable<BigInteger> range = Enumerable.Range(0, quantityOfRows).Select(num => new BigInteger(num));
|
||||
return range.Select(num => GetRow(num).ToArray());
|
||||
}
|
||||
|
||||
public static IEnumerable<BigInteger> GetRow(BigInteger rowNumber)
|
||||
{
|
||||
BigInteger denominator = 1;
|
||||
BigInteger numerator = rowNumber;
|
||||
|
||||
BigInteger currentValue = 1;
|
||||
for (BigInteger counter = 0; counter <= rowNumber; counter++)
|
||||
{
|
||||
yield return currentValue;
|
||||
currentValue = BigInteger.Multiply(currentValue, numerator--);
|
||||
currentValue = BigInteger.Divide(currentValue, denominator++);
|
||||
}
|
||||
yield break;
|
||||
}
|
||||
|
||||
public static string FormatTriangleString(IEnumerable<BigInteger[]> triangle)
|
||||
{
|
||||
int maxDigitWidth = triangle.Last().Max().ToString().Length;
|
||||
IEnumerable<string> rows = triangle.Select(arr =>
|
||||
string.Join(" ", arr.Select(array => CenterString(array.ToString(), maxDigitWidth)) )
|
||||
);
|
||||
int maxRowWidth = rows.Last().Length;
|
||||
return string.Join(Environment.NewLine, rows.Select(row => CenterString(row, maxRowWidth)));
|
||||
}
|
||||
|
||||
private static string CenterString(string text, int width)
|
||||
{
|
||||
int spaces = width - text.Length;
|
||||
int padLeft = (spaces / 2) + text.Length;
|
||||
return text.PadLeft(padLeft).PadRight(width);
|
||||
}
|
||||
}
|
||||
}
|
||||
6
Task/Pascals-triangle/C-sharp/pascals-triangle-3.cs
Normal file
6
Task/Pascals-triangle/C-sharp/pascals-triangle-3.cs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
static void Main()
|
||||
{
|
||||
IEnumerable<BigInteger[]> triangle = PascalsTriangle.GetTriangle(20);
|
||||
string output = PascalsTriangle.FormatTriangleString(triangle)
|
||||
Console.WriteLine(output);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue