62,634
社区成员




// =============== Program Description ===============
// 程序名称: ConsoleReader.java
// 程序目的: 本类用于数据的输入及转换。
// ===================================================
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
public class ConsoleReader
{
public ConsoleReader(InputStream inStream)
{
reader = new BufferedReader (new InputStreamReader(inStream));
}
public int readInt() // 整数输入
{
String inputString = readLine();
int n = Integer.parseInt(inputString);
return n;
}
public double readDouble() // 浮点数输入
{
String inputString = readLine();
double x = Double.parseDouble(inputString);
return x;
}
public String readLine()
{
String inputLine = "";
try
{
inputLine = reader.readLine();
}
catch(IOException e)
{
System.out.println(e);
System.exit(1);
}
return inputLine;
}
private BufferedReader reader;
}
// =============== Program Description ===============
// 程序名称: array04.java
// 程序目的: 设计一个可容纳40位数的求n!程序
// ===================================================
import ConsoleReader.*; // 导入已定义的数据输入类
public class array04
{
public static void main(String args[])
{
int Data[] = new int[40]; // 储存40位数的整数数组
int Digit; // 数据位数变量
int i,j,r,k; // 回圈计数变量
int N; // 用户输入值
for (i=1;i<40;i++) // 将数组初始值设为0
Data[i] = 0;
Data[0] = 1; // 设数组第0位数为1
Data[1] = 1; // 设数组第1位数为1
Digit = 1; // 设数据位数为1
System.out.print("Enter a number what you want to calculus : ");
ConsoleReader console = new ConsoleReader(System.in);
// 读取用户欲求的N值
N = console.readInt();
for (i=1;i<N+1;i++)
{
for (j=1;j<Digit+1;j++)
Data[j] *= i; // 数组中内容的运算
for (j=1;j<Digit+1;j++)
{
if (Data[j]>10)
{
for (r=1;r<Digit+1;r++)
{
if (Data[Digit]>10)
Digit++;
// 当数组中的值大于10时,则位数加1
Data[r+1] += Data[r]/10;
// 前一位数组值 = 前一位数组值 + 此位数组值除以10
Data[r]=Data[r]%10;
// 此位数组值 = 此位数组值除10取余数
}
}
}
System.out.print(i+"! = ");
for (k=Digit;k>0;k--) // 打印出数组中的内容
System.out.print(Data[k]);
System.out.println("");
}
}
}
import java.math.BigInteger;
public class BigIntegerSample {
public static final BigInteger a = new BigInteger("1234567890123");
public static final BigInteger b = new BigInteger("200000000000000000000");
public static void main(String[] args) {
BigInteger result = a.multiply(b);
System.out.println(result.toString());
}
}
输出结果:123456789012300000000000000000000
import java.math.BigDecimal;;
public class BigIntegerSample {
public static final BigDecimal a = new BigDecimal("1234567890123.1");
public static final BigDecimal b = new BigDecimal("200000000000000000000.2");
public static void main(String[] args) {
BigDecimal result = a.multiply(b);
System.out.println(result.toString());
}
}