一、Description

One of the first users of BIT's new supercomputer was Chip Diller. He extended his exploration of powers of 3 to go from 0 to 333 and he explored taking various sums of those numbers.


``This supercomputer is great,'' remarked Chip. ``I only wish Timothy were here to see these results.'' (Chip moved to a new apartment, once one became available on the third floor of the Lemon Sky apartments on Third Street.)

Input

The input will consist of at most 100 lines of text, each of which contains a single VeryLongInteger. Each VeryLongInteger will be 100 or fewer characters in length, and will only contain digits (no VeryLongInteger will be negative).




The final input line will contain a single zero on a line by itself.

Output

Your program should output the sum of the VeryLongIntegers given in the input.

二、题解

        这个题和之前2602有Poj 2602 Superlong sums(大数相加)异曲同工。但还是有要注意的部分,就是这里有前导的0,而且题目没说是否每个数的位数是否相同。还有数组的长度也比题目说明的要大,所以开数组的时候千万不要手下留情啊。这个题目我WA了还多次,可能是考虑的情况不够全面,对题目的要求没有完全弄明白。所以,虽然经过了几次的调试,几组测试数据都过了,但是还是没有AC。请大神指教。但当我一头雾水的时候呢,居然发现java有一种脑残解法,由于java 中自带的 BigInteger 类,这是个不可变的任意精度的整数。而且接受十进制的字符串,并能将 BigInteger
的十进制字符串表示形式转换为 BigInteger。所以,管它什么大数,都弱爆了。但是看来好东西虽然存在,但是了解它的原理还是必要的。

三、java代码

import java.util.*;
import java.math.*; public class Main { public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
BigDecimal bd1 = BigDecimal.valueOf(0);
BigDecimal bd2 = BigDecimal.valueOf(0);
String str; while(cin.hasNext()){
str = cin.nextLine();
if(str.equals("0"))
break;
else{
bd2 = new BigDecimal(str);
bd1 = bd1.add(bd2);
}
} System.out.println(bd1.toPlainString());
}
}

求错误代码!!

import java.io.IOException;
import java.util.Scanner; public class Main {
static byte[] c = new byte[1000];
public static void add(String s1){
int i;
for (i = 0; i <s1.length(); i++){
c[i] += s1.charAt(i) - 48;
}
int cf = 0;
for (i = s1.length() - 1; i >= 0; i--) {
c[i] += cf;
cf=c[i]/10;
c[i]=(byte) (c[i] %10);
}
}
public static void main(String[] args) throws IOException {
Scanner cin = new Scanner(System.in);
String s[]=new String[120];
int i=0,j=0,k;
String ss,te;
String te2;
int max=0;
while(!(ss=cin.next()).equals("0")){
s[i]=ss;
max=Math.max(s[i].length(), max);
i++;
}
for(k=0;k<i;k++){
te=s[k];
te2 ="";
while(s[k].length()<max){
s[k]+="0";
te2+="0";
}
s[k]=te2+te;
add(s[k]);
}
while(c[j]==0){
j++;
}
for(k=j;k<max;k++){
System.out.print(c[k]);
}
System.out.println();
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

POJ 1503 Integer Inquiry(大数相加)的更多相关文章

  1. POJ 1503 Integer Inquiry(大数相加,java)

    题目 我要开始练习一些java的简单编程了^v^ import java.io.*; import java.util.*; import java.math.*; public class Main ...

  2. POJ 1503 Integer Inquiry 大数 难度:0

    题目链接:http://poj.org/problem?id=1503 import java.io.*; import java.math.BigInteger; import java.util. ...

  3. hdu acm-1047 Integer Inquiry(大数相加)

    Integer Inquiry Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  4. Poj 1503 Integer Inquiry

    1.链接地址: http://poj.org/problem?id=1503 2.题目: Integer Inquiry Time Limit: 1000MS   Memory Limit: 1000 ...

  5. HDU 1047 Integer Inquiry 大数相加 string解法

    本题就是大数相加,题目都不用看了. 只是注意的就是HDU的肯爹输出,好几次presentation error了. 还有个特殊情况,就是会有空数据的输入case. #include <stdio ...

  6. POJ 1503 Integer Inquiry 简单大数相加

    Description One of the first users of BIT's new supercomputer was Chip Diller. He extended his explo ...

  7. poj 1503 Integer Inquiry (高精度运算)

    题目链接:http://poj.org/problem?id=1503 思路分析: 基本的高精度问题,使用字符数组存储然后处理即可. 代码如下: #include <iostream> # ...

  8. Integer Inquiry(大数相加)

    Description One of the first users of BIT's new supercomputer was Chip Diller. He extended his explo ...

  9. Poj 2602 Superlong sums(大数相加)

    一.Description The creators of a new programming language D++ have found out that whatever limit for ...

随机推荐

  1. TensorFlow_action

    安装TensorFlow  包依赖 C:\Users\sas> pip3 install --upgrade tensorflow Collecting tensorflow Downloadi ...

  2. 【python】-- 深浅copy、集合

    深浅copy 1.数字.字符串的copy: 赋值(=).浅拷贝(copy)和深拷贝(deepcopy)其实都一样,因为它们永远指向同一个内存地址: >>> import copy & ...

  3. Python菜鸟之路:Python基础-逼格提升利器:装饰器Decorator

    一.装饰器 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等. 装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身 ...

  4. Python 面试题(下)

    接上篇. 网络 1 三次握手 客户端通过向服务器端发送一个SYN来创建一个主动打开,作为三路握手的一部分.客户端把这段连接的序号设定为随机数 A. 服务器端应当为一个合法的SYN回送一个SYN/ACK ...

  5. mysql 自连接查询数据

    今天项目BOSS提了个sql语句需求,我听得稀里糊涂,没办法,一步步讨论.实践,最终搞定. 先上建表语句: /* Navicat MySQL Data Transfer Source Server : ...

  6. fields_for

    1 一对多 Using Strong Parameters With Fields For & Nested Forms in Rails 4 http://www.rubyexperimen ...

  7. 【leetcode刷题笔记】Evaluate Reverse Polish Notation

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...

  8. Redis高级进阶(一)

    一.redis中的事务 在关系型数据库中事务是必不可少的一个核心功能,生活中也是处处可见,比如我们去银行转账,首先需要将A账户的钱划走,然后存到B账户上,这两个步骤必须在同一事务中,要么都执行,要么都 ...

  9. P4045 [JSOI2009]密码

    题目 P4045 [JSOI2009]密码 做法 AC自动机+状压+爆搜 建AC自动机是显然的,顺便预处理\(lst_i\)表示\(i\)结点以哪些串结束(二进制) 然后跑状压\(dp[i][j][k ...

  10. P2487 [SDOI2011]拦截导弹

    题目 P2487 [SDOI2011]拦截导弹 做\(SDOI\)有种想评黑的感觉,果然还是太弱了 做法 独立写(调)代码三个小时祭 简化题目:求二维最长不上升子序列及每个点出现在最长不上升子序列概率 ...