Java实现大数乘法_java实现大数加法、乘法(BigDecimal)

之前写过用vector、string实现大数加法,现在用java的BigDecimal类,代码简单很多。但是在online-judge上,java的代码运行时间和内存大得多。

java大数加法:求a+b

import java.util.*;import java.io.*;importjava.lang.String;importjava.math.BigDecimal;public classp1036

{public static voidmain(String[] args)

{

String s1,s2;

Scanner cin= newScanner(System.in);

s1=cin.next();

s2=cin.next();

BigDecimal b1= newBigDecimal(s1);

BigDecimal b2= newBigDecimal(s2);

System.out.println(b1.add(b2));

cin.close();

}

}

测试输入:

130618656970218663498347545006237201871512019139119220715666434

305161091397192795974451967699240485213039650461566304271331231

421952713061865697021866349834754500623720187151201913911922071

566643430516109139719279597445196769924048521303965046156630427

13312314219527

130618656970218663498347545006237201871512019139119220715666434

305161091397192795974451967699240485213039650461566304271331231

421952713061865697021866349834754500623720187151201913911922071

566643430516109139719279597445196769924048521303965046156630427

13312314219527

输出:

261237313940437326996695090012474403743024038278238441431332868

610322182794385591948903935398480970426079300923132608542662462

843905426123731394043732699669509001247440374302403827823844143

133286861032218279438559194890393539848097042607930092313260854

26624628439054

java大数乘法:求2^(n+1)-1

import java.util.*;import java.io.*;importjava.math.BigDecimal;//2^(n+1)-1

public classMain

{public static voidmain(String[] args)

{

BigDecimal b;

BigDecimal diff=new BigDecimal(-1);intn;

Scanner cin= newScanner(System.in);while(cin.hasNext())

{

n=cin.nextInt();

b=new BigDecimal(2);

b=b.pow(n+1);

System.out.println((b.add(diff)).toString());

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值