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

#include<iostream>#include<string>usingnamespacestd;intmain(){charA[20][1000],B[20][1... #include <iostream>
#include <string>
using namespace std;
int main ()
{
char A[20][1000],B[20][1000],C[1000],D[1000];
int a[1050],b[1050],h[1050],E[20],z[20][1050];
int n,j,k,i,c,m,y,x;
while(cin>>n)
{
if(n==0||n>20) break;
for(c=1 ; c<=n ; c++)
{
cin>>A[c]>>B[c];
j=strlen(A[c]);
k=strlen(B[c]);
if(j>=k)
{strcpy(C,B[c]);strcpy(D,A[c]);y=j;m=j-k;}
else
{strcpy(C,A[c]);strcpy(D,B[c]);y=k;m=k-j;}
for(i=0 ; i<=y; i++)
{
a[i]=0;
b[i]=0;
h[i]=0;
}
E[c]=y;
for(i=1 ; i<=y ; i++)
{
a[i]=D[i-1]-'0';
{
if(i<=m)
b[i]=0;
if(i>m)
b[i]=C[i-m-1]-48;
}
h[i]=a[i]+b[i];
}
for(i=y;i>0;i--)
{
if(h[i]-9>0)
{
h[i-1]++;
h[i]=h[i]-10;
}
}
for(i=0 ; i<=y ; i++)
z[c][i]=h[i];

}

for(i=1 ; i<=n ; i++)
{
cout<<"Case "<<i<<":"<<endl;
cout<<A[i]<<" + "<<B[i]<<" = ";
for(x=0 ; x<=E[i] ; x++)
{
if(z[i][0]>0||x>0)
cout<<z[i][x];
}
cout<<endl;
if(i<n)
cout<<endl;
}
}

return 0;
}
展开
 我来答
ak504512803
2012-03-23 · 超过17用户采纳过TA的回答
知道答主
回答量:58
采纳率:100%
帮助的人:39.6万
展开全部
虽然很想说赞 但是这种是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<n; 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<strlen(A); j++)
a[strlen(A)-1-j]=A[j]-'0';
scanf(" %s",B);
printf("%s = ",B);
for(int j=0; j<strlen(B); j++)
b[strlen(B)-1-j]=B[j]-'0';
for(j=0; j<max; 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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
净静的焱
2012-03-23 · 超过35用户采纳过TA的回答
知道答主
回答量:362
采纳率:0%
帮助的人:172万
展开全部
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));
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式