* name:first 功能:1.求阶乘 2.求阶乘之和
*/
package exe01;
import java.util.Scanner; //输入类
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger; //大的数字的运算需要用到
/*
//一.100的阶乘太大了,int,long,double都不可以
public class first {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int n;
int i;
int sum;
sum=1;
Scanner sc=new Scanner(System.in ); //输入类
System.out.println("请输入n:");
n=sc.nextInt();
for(i=n;i>0;i--) {
sum*=i;
}
System.out.println("n!的值为:"+sum);
}
}*/
//二。使用BigInteger大容量运算类,其math里有计算的功能 1.用BufferedReader类输入
public class first {
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
BigInteger sum=new BigInteger("1"); //sum的初值为1
int n;
int i;
BufferedReader buf;
buf=new BufferedReader(new InputStreamReader(System.in ));
System.out.println("请输入n:");
//n=sc.nextInt();
String str=buf.readLine();
n=Integer.parseInt(str);
for(i=1;i<=n;i++) {
BigInteger num=new BigInteger(String.valueOf(i)); //令num等于i的值
sum=sum.multiply(num);
}
System.out.println("n!的值为:"+sum);
}
}
/*
//二.使用BigInteger大容量运算类,其math里有计算的功能 2. 用Scanner类输入
public class first {
public static void main(String[] args) {
// TODO 自动生成的方法存根
BigInteger sum=new BigInteger("1"); //sum的初值为1
int n;
int i;
//int sum;
//sum=1;
Scanner sc=new Scanner(System.in ); //输入类
System.out.println("请输入n:");
n=sc.nextInt();
for(i=1;i<=n;i++) {
BigInteger num=new BigInteger(String.valueOf(i)); //令num等于i的值
sum=sum.multiply(num);
}
System.out.println("n!的值为:"+sum);
}
}
*/
/*//三.阶乘相加
public class first {
public static void main(String[] args) {
// TODO 自动生成的方法存根
BigInteger sum=new BigInteger("1"); //sum的初值为1
BigInteger result=new BigInteger("0");
int n;
int i;
//int j;
Scanner sc=new Scanner(System.in ); //输入类
System.out.println("请输入n:");
n=sc.nextInt();
for(i=1;i<=n;i++) {
BigInteger num=new BigInteger(String.valueOf(i)); //令num等于i的值
sum=sum.multiply(num);
result=result.add(sum);
}
System.out.println("自1!加到n!的值为:"+result);
}
}
*/