我想找到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;
}
}
它什么都没有显示
我可以知道我哪里出错吗?
答案 0 :(得分:2)
很可能你忘了
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;
}
在乘以下一个数字后,必须添加
答案 1 :(得分:-1)
BigInteger是一种内置的Java类型,您可以直接使用它。