Java求阶乘和求阶乘之和

* 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);
	}

}
*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值