题意
两数相加
思路
JAVA大数相加
C++字符数组转换为数字数组,从个位开始相加
代码
//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 <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
char a[1010]={'0'},b[1010]={'0'};
int aa[1010]={0},bb[1010]={0},cc[1010]={0};
cin>>a>>b;
int al=strlen(a),bl=strlen(b),cl;
cl=al>bl?al:bl;
for(int j=0;j<al;j++){
aa[j]=a[al-j-1]-'0';
}
for(int j=0;j<bl;j++){
bb[j]=b[bl-j-1]-'0';
}
for(int j=0;j<=cl;j++){
cc[j]=cc[j]+aa[j]+bb[j];
if(cc[j]>=10){
cc[j+1]=cc[j+1]+cc[j]/10;
cc[j]%=10;
}
}
cout<<"Case "<<i<<":"<<endl;
cout<<a<<" + "<<b<<" = ";
if(cc[cl]!=0){
for(int j=cl;j>=0;j--){
cout<<cc[j];
}
}
else{
for(int j=cl-1;j>=0;j--){
cout<<cc[j];
}
}
cout<<endl;
if(i!=n){
cout<<endl;
}
}
return 0;
}