gpt4 book ai didi

java - 大数乘法(求 100 的阶乘)

转载 作者:行者123 更新时间:2023-12-01 11:51:30 26 4
gpt4 key购买 nike

我想找到100的值!由于任何数据类型都不支持此范围的数字,因此我使用数组来查找结果

我的程序的逻辑是

for(int i=1;i<=100;i++)
{
carry=0;
for(int j=799;j>=0;j--)
{
ar[j]=ar[j]+carry;
ar[j]=ar[j]*i;
carry=ar[j]/10;
ar[j]=ar[j]%10;
}
}

这里我认为最大位数是 800(在数组 0 到 799 中)。

但是当我像这样打印结果数组时

    int flag=0;
for(int i=0;i<800;i++)
{
if(ar[i]==0&&flag==0)
;
else
{
System.out.print(ar[i]);
flag=1;
}
}

什么也没显示

我能知道我哪里出了问题吗?

最佳答案

很可能你忘记了

ar[799] = 1;

在开始乘法循环之前:乘积初始化为 1。

但是乘法循环也不正确:

 for(int j=799;j>=0;j--){
ar[j]=ar[j]*i;
ar[j]=ar[j]+carry;
carry=ar[j]/10;
ar[j]=ar[j]%10;
}

进位必须在乘以下一个数字之后添加...

关于java - 大数乘法(求 100 的阶乘),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28790414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com