HDU-1002 A + B Problem II Java大数
一道最基本的大数相加题,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;
}
对比之下,不解释了。


浙公网安备 33010602011771号