class Program
{
/* SetValue()将当前Array中的指定元素设置为指定值
* GetLength()获取一个32位整数,该整数表示Array指定维中的元素数*/
static void Main(string[] args)
{
Array Data = Array.CreateInstance(typeof(Int32),30);//存储30位整数的整数数组
int Dight;//数据位数变量
int i, j,r, k;//循环计数变量
int N;//用户输入值
for ( i = 0; i < 30; i++)//将数组初始值设为0
{
Data.SetValue(0,i);
}
Data.SetValue(1,0);//设第0位数数组元素为1
Data.SetValue(1,1);//设第1位数数组元素为1
Dight = 1;//设置数据位数为1
Console.WriteLine("输入你要求n!的整数 :");
N = Convert.ToInt32(Console.ReadLine());
for ( i = 1; i < N+1; i++)
{
for ( j = 1; j < Dight+1; j++)
{
Data.SetValue((int)Data.GetValue(j)*i,j);//计算数组中的内容
}
for ( j = 1; j < Dight+1; j++)
{
if ((int)Data.GetValue(j)>10)
{
for ( r = 1; r < Dight+1; r++)
{
if ((int)Data.GetValue(Dight)>10)
{
Dight++;
}
Data.SetValue((int)Data.GetValue(r + 1) + (int)Data.GetValue(r) / 10, r + 1);
Data.SetValue((int)Data.GetValue(r)%10,r);
}
}
}
}
Console.Write(N.ToString()+"!=");
for ( k = Dight; k > 0; k--)
{
Console.Write(Data.GetValue(k));
}
Console.ReadKey();
}
}
}
|