您的位置:首页 > 编程语言 > Java开发

HDU-1002 A + B Problem II Java大数

2011-08-14 09:53 295 查看
  一道最基本的大数相加题,java果然强大啊。

import java.math.BigInteger;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
BigInteger a, b;
int T;
Scanner in = new Scanner(System.in);
T = in.nextInt();
for (int i = 1; i <= T; ++i) {
System.out.println("Case" + " " + i + ":");
a = in.nextBigInteger();
b = in.nextBigInteger();
if (i < T) {
System.out.println(a + " + " + b + " = " + a.add(b) );
System.out.println();
} else {
System.out.println(a + " + " + b + " = " + a.add(b));
}
}
}
}


  以下是以前写的C++代码:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#define MAX 1000

char a[MAX+1],b[MAX+1];
int T;

int main()
{
scanf("%d",&T);
for(int w=1;w<=T;++w)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
scanf("%s%s",a,b);
printf("Case %d:\n",w);
printf("%s + %s = ",a,b);
int len1=strlen(a);
int len2=strlen(b);
int fpla=MAX-( len1>len2 ? len1:len2);
for(int i=len1-1,k=MAX;i>=0;--i,--k)
a[k]=(a[i]-'0'),a[i]=0;

for(int i=len2-1,k=MAX;i>=0;--i,--k)
b[k]=(b[i]-'0'),b[i]=0;

for(int i=MAX;i>=fpla;--i)
a[i]+=b[i];
for(int i=MAX;i>=fpla;--i)
{
int c=a[i]/10;
a[i-1]+=c;
a[i]%=10;
}
for(int i=fpla+1;i<=MAX;++i)
printf("%d",a[i]);
puts("");
if(w<T)
puts("");
}
return 0;
}


  对比之下,不解释了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: