⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 array-04.java

📁 java数据结构,简单,易懂,有利于初学者
💻 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 + -