求超大数的阶乘,比如求800的阶乘!
今天去面试遇到这个题
求>500的数的阶乘,提示:阶乘的结果超过了double、decimal、long、的表示范围!
下面是我的解答,但是会出现误差,大家有好的办法给说个,谢谢!
求>500的数的阶乘,提示:阶乘的结果超过了double、decimal、long、的表示范围!
下面是我的解答,但是会出现误差,大家有好的办法给说个,谢谢!
struct SuperNumber
{
//底数
public double Num;
//指数
public int Index;
public static SuperNumber operator *(SuperNumber sn1,SuperNumber sn2)
{
SuperNumber sn=new SuperNumber();
sn.Num=sn1.Num*sn2.Num;
sn.Index=sn1.Index+sn2.Index;
where(sn.Num>10)
{
sn.Num/=10;
sn.Index++;
}
return sn;
}
public override string ToString()
{
return Num.ToString()+" X 10 的"+Index+"次方";
}
}
class Program
{
SuperNumber tmp=new SuperNumber();
SuperNumber sn=new SuperNumber();
sn.Num=1;
sn.Index=0;
for(int i=2;i<=800;i++)
{
tmp.Number=i;
sn=sn*tmp;
}
System.Console.WriteLine(sn.ToString());
System.Console.ReadKey();
}
...全文
相关推荐
Java编程之求输入数的阶乘
这是使用Java编程来求输入数阶乘的一个经典例子,请大家有需要的多多参考!
用C#编写一个求10!(十的阶乘)的控制台应用程序
创建一个控制台应用程序,求1!+2!+……+10!。编写一个函数来求一个数的阶乘。
求某个数的阶乘java代码
求某个数的阶乘java代码 输出:Hello!---20的阶乘等于:2432902008176640000
python求前n个阶乘的和实例
主要介绍了python求前n个阶乘的和实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
汇编语言实现N!阶乘
用汇编语言编写的求N的阶乘小程序,在屏幕上输入0-9的数,求阶乘,并将结果显示在屏幕上


