📄 array-04.java
字号:
//=====================程序描述==================
//程序名称:array-04.java
//程序目的:将大数存储在数组中
//作者:张中强
//=====================程序描述==================
class array04
{
public static void main(String args[])
{
//打印30以前的整数的阶乘
for(int n=1;n<=30;n++)
{
int[] result=getArrayValue(n);
System.out.print(n+"!=");
//设置flag,去掉前导0
boolean flag=false;
for(int i=39;i>=0;i--)
{
if(result[i]>0)
flag=true;
if(flag)
System.out.print(result[i]);
}
System.out.println();
}
/*
for(int x=1;x<=30;x++)
{
System.out.println(getResult(x));
}
*/
}
//专门编写一个求阶乘的函数
static int[] getArrayValue(int n)
{
int[] arrayValue=new int[40];
int arrayLength=1;
//设置数组的初值
arrayValue[0]=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<arrayLength;j++)
{
//每一位乘以当前循环变量
arrayValue[j]*=i;
}
//从第0位开始,判断每位值是否大于或者等于10
//如果是,则将该位数除以10,商加到其高位,
//余数留在本位
for(int j=0;j<arrayLength;j++)
{
if(arrayValue[j]>=10)
{
arrayValue[j+1]+=arrayValue[j]/10;
arrayValue[j]%=10;
}
}
//可能需要修改arryLength
if(arrayValue[arrayLength]>0)
arrayLength+=1;
}
return arrayValue;
}
static double getResult(int n)
{
double result=1;
for(int i=1;i<=n;i++)
result*=i;
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -