大整数相加
给出四个可能会很大的数,求和;
代码:
import java.io.*;
import java.math.BigInteger;
import java.util.*;
public class Main2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
int t;
t = reader.nextInt();
for(int i=1;i<=t;i++)
{
BigInteger a, b, c, d;
a = reader.nextBigInteger();
b = reader.nextBigInteger();
c = reader.nextBigInteger();
d = reader.nextBigInteger();
b = b.add(a);
c = c.add(b);
d = d.add(c);
System.out.println(d);
}
}
}
大整数的定义:
BigInteger a, b, c, d;
大整数的输入:
a = reader.nextBigInteger();
b = reader.nextBigInteger();
c = reader.nextBigInteger();
d = reader.nextBigInteger();
大整数之间的加法,要用到函数
c = c.add(b);
//c=c+b;
d = d.add(c);
//d=d+c;
给出一个n,求从1加到n的值;
代码:
import java.math.*;
import java.util.*;
public class Main2 {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
long n;
while(reader.hasNextLong())
{
n=reader.nextLong();
BigInteger sum=BigInteger.ZERO;
long i;
for(i=1;i<=n;i++)
{
sum=sum.add(BigInteger.valueOf(i));
}
System.out.println(sum);
}
}
}
BigInteger.ZERO 在BigInteger内部定义的一个代表数字0的常量;
BigInteger.valueOf();只特定用于取long的值,好像int也可以;
java.math.BigInteger.valueOf()方法;
[http://www.yiibai.com/java/math/biginteger_valueof.htm]);//这里介绍的很详细;
注:
【1】长整型为long,定义一个变量,给这个变量赋值的时候,
long l1=123456789L;
需在数字末尾加“L”。(貌似L大写小写都可以);
【2】long a=10l; 等同于 a=new long(10l);
java.math.BigInteger.abs()方法,取绝对值;
链接:http://www.yiibai.com/java/math/biginteger_abs.html;
乘法:
求n的阶乘;
代码:
import java.math.*;
import java.util.*;
public class Main2 {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
int n;
while(reader.hasNextLong())
{
n=reader.nextInt();
BigInteger mul=BigInteger.ONE;
int i;
for(i=1;i<=n;i++)
{
mul=mul.multiply(BigInteger.valueOf(i));
}
System.out.println(mul);
}
}
}
BigInteger.ONE=1;
乘法的操作:(与加法类似);
mul=mul.multiply(BigInteger.valueOf(i));
//mul=mul*i;