大整数计算问题,求解
计算1到20的阶乘和问题,希望大家帮忙指出下列所有错误的地方,然后再说说效率问题。谢谢。
public class J_largeNumber
{
public static void main(String args[])
{
byte n=1,temp;
byte [] result=new byte [30];
byte [] npow1=new byte [30];
byte [] npow2 = new byte [30];
for (byte i=1;n<=20;n++)//计算1至20的阶乘和
{
npow1[0]=(byte)(n%10);
npow1[1]=(byte)(n/10);
while(i<n)//计算1至20的阶乘
{
for(int j=0;j<npow1.length;j++)//计算两个数相乘
{
temp=(byte)(npow1[j]*i);
for(int k=j;0!=temp;k++)//计算每一位相乘
{
npow2[k]+=temp%10;
if (npow2[k]>9)//进位
{
npow2[k+1]++;
npow2[k]-=10;
}
temp/=10;
}
}
for(int j=0;j<npow1.length;j++)//将结果给被乘数
{
npow1[j]=npow2[j];
}
for(int j=0;j<npow2.length;j++)//结果重新赋值为零
{
npow2[j]=0;
}
}
for (int j=0;j<npow1.length;j++)
{
result[j]+=npow1[j];
if (result[j]>9)
{
result[j+1]++;
result[j]-=10;
}
}
}
for(int j=0;j<result.length;j++)
System.out.print(result[j]);
}
}
...全文
相关推荐
C++写的大整数计算器
《C++实现大整数计算器的深度解析》在计算机科学中,标准的整数类型在处理极大数值时会受到限制。为了解决这一问题,程序员通常会采用自定义的大整数类(BigInt)来存储和操作超出常规整型范围的数字。
分治法大整数乘法课件
这些算法通过分解大整数,然后对子问题进行乘法运算,最后再组合结果,降低了计算复杂度。
大整数相乘问题--分而治之
总的来说,大整数相乘问题的解决是通过将问题分解为更小的部分,然后利用分而治之策略进行求解,这种方法在效率上远超传统的乘法算法,尤其是在处理大规模数据时。
大整数乘法算法[项目代码]
这种算法的主要特点是将一个看似庞大的问题分解成更小、更容易处理的子问题,然后逐步求解这些子问题,并最终将子问题的结果合并起来,得到最终的乘积结果。
大整数模板
在编程领域,大整数模板是一种处理超过标准整型数据范围的大整数计算的方法。它主要应用于需要处理极大数值的情况,比如加密算法、数学计算、数论问题等。


Java SE
