C# 生成钟数算法

C# 生成钟数算法,c#,algorithm,C#,Algorithm,我试图为500到1000之间的大值生成第n个钟形数 Bells的数量很大,我无法将其存储在ulong中 (要知道电话号码:) 我试着用三角法来计算这个数字 你能告诉我一种保存大量数据的方法,比如dat和执行操作 这是我写的代码 使用系统; 班级计划 { 静态void Main(字符串[]参数) { 整数长度; 做 { 长度=-1; 字符串numLength=Console.ReadLine(); if(内锥尖长度,外长)) { WriteLine(“序列长度为:{0}”)

我试图为500到1000之间的大值生成第n个钟形数

Bells的数量很大,我无法将其存储在ulong中

(要知道电话号码:)

我试着用三角法来计算这个数字

你能告诉我一种保存大量数据的方法,比如dat和执行操作

这是我写的代码


使用系统;
班级计划
{        
静态void Main(字符串[]参数)
{
整数长度;
做
{
长度=-1;
字符串numLength=Console.ReadLine();
if(内锥尖长度,外长))
{   
WriteLine(“序列长度为:{0}”),
三角法(长度);
}
}而(长度>0);
}
静态乌隆三角法(int n)
{
字典三角形=
新字典();
添加(1,新列表(新ulong[]{1}));

对于(int i=2;i使用命名空间
System.Numerics中的
biginger结构

我想这对你会有用的

using System;

class Program    
{        
    static void Main(string[] args)
    {
        int length;
        do
        {
            length =-1;                
            string numLength= Console.ReadLine();
            if (int.TryParse(numLength, out length))
            {   
                Console.WriteLine("Sequence length is : {0}",
                                           TriangularMethod(length));
            }
        }while(length>0);
    }

    static ulong TriangularMethod(int n)
    {
        Dictionary<long, List<ulong>> triangle = 
                                new Dictionary<long, List<ulong>>();
        triangle.Add(1, new List<ulong>(new ulong[] { 1 }));

        for (int i = 2; i <= n; i++)
        {
            triangle.Add(i, new List<ulong>());
            triangle[i].Add(triangle[i - 1].Last());
            ulong lastVal = 0;
            for (int k = 1; k < i; k++)
            {
                lastVal = triangle[i][k - 1] + triangle[i - 1][k - 1];
                triangle[i].Add(lastVal);                    
            }

            triangle.Remove(i - 2);
        }
        return triangle[n].Last();
    }        
}