现在我们拿50的阶乘举例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 五十的阶乘
{
class Program
{
static void Main(string[] args)
{
string n = "1";
for (int i = 2; i < 51; i++)
{
n = Strchenstr(n, i.ToString());
}
Console.Write("50的阶乘是" + n);
Console.Read();
}
public static string Straddstr(string a,string b)
{
List<string> str = new List<string>();
int e = 0;
string num = "";
string n;
//进位标置
bool flag = false;
for (int i = 0; i < a.Length; i++)
{
string m = a[a.Length - i - 1].ToString();
int c = Convert.ToInt32(m);
if (b.Length - i - 1 >= 0)
{
n = b[b.Length - i - 1].ToString();
}
else
{
n = "0";
}
int d = Convert.ToInt32(n);
if (flag == true)
{
e = c + d + 1;
flag = false;
}
else
{
e = c + d;
}
if (e >= 10)
{
string kk = (e % 10).ToString();
str.Add(kk);
flag = true;
}
else
{
str.Add(e.ToString());
}
}
if (flag == true)
{
str.Add("1");
}
for (int i = str.Count - 1; i >= 0; i--)
{
num = num + str[i];
}
return num;
}
public static string Strchenstr(string a, string b)
{
string num =a;
for (int i = 0; i < Convert.ToInt32(b)-1; i++)
{
num = Straddstr(num, a);
}
return num;
}
}
}