前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BigInteger用在循环

BigInteger用在循环

作者头像
砖业洋__
发布2023-05-06 17:01:27
1360
发布2023-05-06 17:01:27
举报
文章被收录于专栏:博客迁移同步博客迁移同步

比如要写如下4个函数

1.SUM(n) = 1 + 2 + 3+ … + n-1 + n] 2.SUM1(n) = 1 + (1+2) + (1+ 2+ 3) + … (1 + 2 + 3 + … +n-1+n) 3.FACT(n) = 1*2*3* . . . *(n-1) * n 

4.FACT_SUM(n) = 1 + 1*2 + 1*2*3 + … + 1*2*3* . . . *(n-1) * n

用long连100都过不了,无比无比的长的数字,试一试BigInteger,第一次写在循环里面,有点不习惯

上代码

代码语言:javascript
复制
import java.io.BufferedInputStream;
import java.math.BigInteger;
import java.util.Scanner;

public class test {
    public static BigInteger sum(BigInteger n) {
        return n.multiply(n.add(BigInteger.ONE)).divide(new BigInteger("2"));
    }

    public static BigInteger sum1(BigInteger n) {
        BigInteger sum = BigInteger.ZERO;
        BigInteger sum1 = BigInteger.ZERO;
        n = n.add(BigInteger.ONE);
        for (BigInteger i = BigInteger.ONE; i.compareTo(n) < 0; i = i.add(BigInteger.ONE)) {
            sum = sum.add(i);
            sum1 = sum1.add(sum);
        }
        return sum1;
    }

    public static BigInteger fact(BigInteger n) {
        BigInteger mul = BigInteger.ONE;
        n = n.add(BigInteger.ONE);
        for (BigInteger i = new BigInteger("2"); i.compareTo(n) < 0; i = i.add(BigInteger.ONE)) {
            mul = mul.multiply(i);
        }
        return mul;
    }

    public static BigInteger fact1(BigInteger n) {
        BigInteger sum = BigInteger.ONE, mul = BigInteger.ONE;
        n = n.add(BigInteger.ONE);
        for (BigInteger i = new BigInteger("2"); i.compareTo(n) < 0; i = i.add(BigInteger.ONE)) {
            mul = mul.multiply(i);
            sum = sum.add(mul);
        }
        return sum;
    }

    public static void main(String[] args) {
        Scanner cin = new Scanner(new BufferedInputStream(System.in));
        BigInteger big = new BigInteger(cin.next());
        cin.close();
        System.out.println(sum(big));
        System.out.println(sum1(big));
        System.out.println(fact(big));
        System.out.println(fact1(big));
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档