Java求取阶乘and求取阶乘之和

这篇博客展示了如何使用Java编程计算阶乘以及阶乘之和。通过两种不同的方式利用BigInteger类处理大整数运算,分别演示了用BufferedReader和Scanner类获取用户输入,然后计算阶乘,并在最后一个示例中计算从1到指定数n的所有阶乘之和。

/*
 * name:first              功能:1.求阶乘  2.求阶乘之和
 * Author:Hur        Date:19/5/9
 */
package Excise0;

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

}
*/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值