杭电acm1002,一直wrong answer,怎么改啊~我的测试结果都是正确的

2024-11-20 01:43:13
推荐回答(2个)
回答1:

虽然很想说赞 但是这种是JAVA大数暴力 给没学的人AC了也没意义
有时候样例都是浮云,要逻辑周全才能AC
需要自己DEGUB才能提高
给你C ++数组模拟的代码之前说下
---输入输出不相影响,可以边输入变输出,循环时需要的话就初始化就好了
这样会减少好多代码 有利于找错误

int a[max],b[max];
char A[max],B[max];
int n;
scanf("%d",&n);
for(int i=0; i {
int j;
memset(a,0,sizeof(a));//初始化a和b数组为零,相当for一遍
memset(b,0,sizeof(b));
if(i)printf("\n");
printf("Case %d:\n",i+1);
scanf(" %s",A);
printf("%s + ",A);
for(int j=0; j a[strlen(A)-1-j]=A[j]-'0';
scanf(" %s",B);
printf("%s = ",B);
for(int j=0; j b[strlen(B)-1-j]=B[j]-'0';
for(j=0; j {
a[j]+=b[j];
if(a[j]>9){a[j+1]+=a[j]/10;a[j]%=10;}
}

int f=0;
for( j=max; j>=0; j--)
{
if(a[j])f=1;
if(f)printf("%d",a[j]);
}
if(!f)printf("0");
printf("\n");
A[0]='\0';
B[0]='\0';
}
return 0;
}

回答2:

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

public class Main {
public static void main(String args[]){
//Scanner sc = new Scanner(new File("a.txt"));
Scanner sc = new Scanner(System.in);
int n = sc.nextInt() ;
boolean bool = false ;
for(int i=1;i<=n;i++){
if(bool){
System.out.println();
}else{
bool = true ;
}
BigInteger a = new BigInteger(sc.next());
BigInteger b = new BigInteger(sc.next());
System.out.println("Case "+i+":");
System.out.println(a+" + "+b+" = "+a.add(b));
}
}
}