poj 1503 高精度加法

简介: 把输入的数加起来,输入0表示结束。先看我Java代码,用BigINteger类很多东西都不需要考虑,比如前导0什么的,很方便。不过java效率低点,平均用时600ms,C/C++可以0ms过。

把输入的数加起来,输入0表示结束。

先看我Java代码,用BigINteger类很多东西都不需要考虑,比如前导0什么的,很方便。不过java效率低点,平均用时600ms,C/C++可以0ms过。

import java.math.BigInteger;
import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
    Scanner cin = new Scanner(System.in);
    BigInteger sum = BigInteger.valueOf(0);
    BigInteger a;
    a = cin.nextBigInteger();
    while (true) {
      sum = sum.add(a);
      if (a.compareTo(BigInteger.valueOf(0)) == 0)
        break;
      a = cin.nextBigInteger();
    }
    System.out.println(sum);
    cin.close();
  }
}

下面是我从网上找的C++代码,无外乎就是用数组模拟实现大数的加法。

#include<stdio.h>
#include<string.h>
#define N 20000
int ans[N],f,max;
void hadd(char a[])
{
    f=0;
    int n=strlen(a);
    for(int i=n-1;i>=0;i--)
    {
        a[i]-='0';
        ans[f]+=a[i];
        ans[f+1]+=ans[f]/10;
        ans[f]%=10;
        f++;
        if(max<f) max=f;
    }
}
int main()
{
    memset(ans,0,sizeof(ans));
    while(1)
    {
        char s[N];
        scanf("%s",s);
        if(strlen(s)==1&&s[0]=='0') break;
        hadd(s);
    }
    int flag=0;
    for(int i=N-1;i>=0;i--)
    {
        if((!flag&&ans[i]!=0)||flag||(!flag&&i==0))
        {printf("%d",ans[i]);flag|=1;}
    }
    puts("");
    return 0;
}
目录
相关文章
|
7月前
Pseudoprime numbers(POJ-3641 快速幂)
Pseudoprime numbers(POJ-3641 快速幂)
poj 1990 MooFest 树状数组
题意就是有N头牛,每头牛都有一个坐标和声调值(x, v),两头牛之间通讯要花费的能量是他们的距离乘以最大的一个音调值,现在要任意两头牛之间都相互通讯一次,求总共需要花费多少能量?
52 0
POJ-3641,Pseudoprime numbers(快速幂)
POJ-3641,Pseudoprime numbers(快速幂)
POJ-2253,Frogger(最短路问题)
POJ-2253,Frogger(最短路问题)
|
人工智能 网络架构
poj-1012-约瑟夫问题
Description The Joseph's problem is notoriously known. For those who are not familiar with the original problem: from among n people, numbered 1, 2, .
812 0
最长公共子串-poj-2274-undone
Long Long Message Time Limit: 4000MS Memory Limit: 131072K Total Submissions: 20935 Accepted: 8622 Case Time Limit: 1000MS Description The little cat is majoring in physics in the capi
1086 0
poj Dollar Dayz(完全背包)
点击打开链接poj 3181 思路: 完全背包+高精度 分析: 1 题目是裸的完全背包,但是要注意的一个地方是要用高精度 代码: #include #include #include #include using namespa...
979 0