2014 Multi-University Training Contest 6 - HDU4927 - Series 1

本文介绍了使用Java处理大整数运算的方法,包括输入整数、遍历整数数组并进行加减运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.util.*;
import java.io.*;
import java.math.BigInteger;
import java.math.*;
import java.lang.*;

public class Main {
     public static void main(String args[])
     {
            Scanner cin = new Scanner(System.in);
            BigInteger res = BigInteger.ZERO;
            BigInteger tmp;
            int t;
            BigInteger a[] = new BigInteger[4010];
            while (cin.hasNextInt()) {
                t = cin.nextInt();
                for (int ii = 0; ii < t; ++ ii) {
                    tmp = BigInteger.ONE;
                    int n;
                    n = cin.nextInt();
                    for (int i = n-1; i >= 0; -- i) {
                        a[i] = cin.nextBigInteger();
                    }
                    res = BigInteger.ZERO;
                    for (int i = 0; i < n; ++ i) {
                        if (i > 0) tmp = tmp.multiply(BigInteger.valueOf(n-i)).divide(BigInteger.valueOf(i));
                        if (i%2 == 0) res = res.add(tmp.multiply(a[i]));
                        else{
                            res = res.subtract(tmp.multiply(a[i]));
                        }
                    }
                    System.out.println(res);
                }
            }
      }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值