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

java大数加法:求a+b

import java.util.*;
import java.io.*;
import java.lang.String;
import java.math.BigDecimal; public class p1036
{
public static void main(String[] args)
{
String s1,s2;
Scanner cin = new Scanner(System.in);
s1 = cin.next();
s2 = cin.next();
BigDecimal b1 = new BigDecimal(s1);
BigDecimal b2 = new BigDecimal(s2);
System.out.println(b1.add(b2));
cin.close();
}
}

用这个类,乘除法也很简单,不管是整形还是float,详见http://docs.oracle.com/javase/7/docs/api/ 。

测试输入:

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.*;
import java.math.BigDecimal; //2^(n+1)-1
public class Main
{
public static void main(String[] args)
{
BigDecimal b;
BigDecimal diff=new BigDecimal(-1);
int n;
Scanner cin = new Scanner(System.in);
while(cin.hasNext())
{
n = cin.nextInt();
b=new BigDecimal(2);
b=b.pow(n+1);
System.out.println((b.add(diff)).toString());
}
}
}

java实现大数加法、乘法(BigDecimal)的更多相关文章

  1. vector、string实现大数加法乘法

    理解 vector 是一个容器,是一个数据集,里边装了很多个元素.与数组最大的不同是 vector 可以动态增长. 用 vector 实现大数运算的关键是,以 string 的方式读入一个大数,然后将 ...

  2. Java实现大数加法运算的几种方法

    大数加法 思路一:定义String变量str1和str2分别存储输入的两个大数,定义num1[]和num2[]两个int型数组,将两个字符串分别逐个字符逆序存入数组,定义sum[]数组存放求和结果,使 ...

  3. sdut2613(This is an A+B Problem)大数加法(乘法)

    #include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>u ...

  4. [acm 1001] c++ 大数加法 乘法 幂

    北大的ACM 1001 poj.org/problem?id=1001 代码纯手动编写 - - #include <iostream> #include <cstdio> #i ...

  5. Java的大数操作分为BigInteger和BigDecimal

    Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: 1 pack ...

  6. 51 Nod 1005 大数加法【Java大数乱搞,python大数乱搞】

    1005 大数加法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个大整数A,B,计算A+B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度  ...

  7. Java实现 蓝桥杯VIP 算法提高 大数加法

    算法提高 大数加法 时间限制:1.0s 内存限制:256.0MB 问题描述 输入两个正整数a,b,输出a+b的值. 输入格式 两行,第一行a,第二行b.a和b的长度均小于1000位. 输出格式 一行, ...

  8. Hat's Fibonacci(大数加法+直接暴力)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1250 hdu1250: Hat's Fibonacci Time Limit: 2000/1000 M ...

  9. Java BigInteger(大数,ACM比赛专用)

    用c或者C++处理大数比较麻烦,于是决心学习一下JAVA中大数运算. 先下载一个eclipse,具体的用法去问度娘吧 JAVA中有两个类BigInteger和BigDecimal分别表示大整数类和大浮 ...

随机推荐

  1. CMD规范的函数与普通函数间调用

    /* * a.js * 普通的非cmd规范的js文件 */ function fun1(){ console.log("fun1"); //调用seajs模块中的fun1 seaj ...

  2. AngularJS(15)-依赖注入

    AngularJS 依赖注入 什么是依赖注入 wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或 ...

  3. Ubuntu下设置Tomcat成为服务(开机启动)

    1.将tomcat安装目录下bin文件夹中的catalina.sh拷贝到/etc/init.d下并修改名称为tomcat cp  /path/to/tomcat/bin/catalina.sh /et ...

  4. 分享:mysql 随机查询数据

    在mysql中查询5条不重复的数据,使用以下: 1 SELECT * FROM `table` ORDER BY RAND() LIMIT 5  就可以了.但是真正测试一下才发现这样效率非常低.一个1 ...

  5. 重拾C,一天一点点_3

    按位运算 C语言提供了6个位操作运算符,只能作用于整型操作数,即只作用于带符号或无符号的char.short.int.long. &    按位与(AND) !      按位或(OR) ^  ...

  6. Oracle 表的访问方式(2)-----索引扫描

    索引扫描(Index scan) 我们先通过index查找到数据对应的rowid值(对于非唯一索引可能返回多个rowid值),然后根据rowid直接从表中得到具体的数据,这种查找方式称为索引扫描或索引 ...

  7. openerp经典收藏 深入理解工作流(Workflow)(转载)

    深入理解工作流(Workflow) 原文:http://shine-it.net/index.php/topic,2494.0.html 一.工作流定义:<?xml version=" ...

  8. ASP.NET MVC +EasyUI 权限设计(一)开篇

    在前一段时间中,老魏的确非常的忙碌,Blog基本上没有更新了,非常的抱歉,那么在后面的时间中,老魏会尽量的抽时间来写的,可能时间上就不太富裕了.今天开始呢,老魏会和大家分享一下关于权限设计的有关文章, ...

  9. 设置NODE_ENV=production

    NodeJS - Express 4.0下设置环境变量NODE_ENV=production,并不是修改文件的配置信息,而是通过命令行来实现. 首先在命令行下进入项目的目录,然后先后执行如下命令: s ...

  10. JDBC 学习笔记(一)—— 基础知识 + 分页技术

    本文目录:  1.JDBC简介       2.使用JDBC的步骤——第一个JDBC程序       3.DriverManager ——加载数据库驱动       4.数据库URL ——标识数据库的 ...