using System;
using System.Text;
namespace ConsoleApplication1
{
internal class Program
{
public static void Main(string[] args)
{
var result = "1";
for (var i = 2; i < 101; i++)
{
result = GetResult(result, i.ToString());
}
Console.WriteLine(result.Length);
Console.WriteLine(result);
}
private static string GetResult(string s1, string s2)
{
var lastResult = "";
var ten1 = -1;
var result = new int[s1.Length + s2.Length]; //用以记录计算结果
for (var i = s1.Length - 1; i >= 0; i--)
{
int c1 = Convert.ToInt16(s1[i].ToString()); //从s1中从后往a前取一个数并记录这个数的位置
ten1++;
var resultindex = result.Length - 1 - ten1;
for (var j = s2.Length - 1; j >= 0; j--)
{
int c2 = Convert.ToInt16(s2[j].ToString()); //从?s2中从后往前取一个数
var cc = c1*c2 + result[resultindex];
if (cc > 10)
{
result[resultindex] = cc%10;
var lastindex = resultindex - 1; //往前移动一位
var lastvalue = result[lastindex] + cc/10; //把刚刚得到的十位的数字赋值到前面
while (cc > 10)
{
cc = result[lastindex] + cc/10;
result[lastindex] = cc%10;
lastindex--; //进位
}
}
else
{
result[resultindex] = cc;
}
resultindex--; //进位
}
}
var sb = new StringBuilder();
foreach (var item in result)
{
sb.Append(item);
}
lastResult = sb.ToString();
if (lastResult[0] == '0')
{
lastResult = lastResult.Substring(1);
}
return lastResult;
}
}
}
unity3d 1-100 阶乘的精准大数
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 【蝴蝶效应】 蝴蝶效应:上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶...