杭电ACM1002题,通不过,求指导
#include<stdio.h>intmain(){inta;__int64b;__int64c;inti;while(scanf("%d",&a)==1){for(i...
#include<stdio.h>
int main()
{int a;
__int64 b;
__int64 c;
int i;
while (scanf("%d",&a)==1)
{ for (i=1;i<=a;i++)
{scanf("%I64d%I64d",&b,&c);
printf("Case %d\n:",i);
printf("%I64d + %I64d = %I64d\n " ,b,c,b+c);
printf("\n");
}
}
return 0;
} 展开
int main()
{int a;
__int64 b;
__int64 c;
int i;
while (scanf("%d",&a)==1)
{ for (i=1;i<=a;i++)
{scanf("%I64d%I64d",&b,&c);
printf("Case %d\n:",i);
printf("%I64d + %I64d = %I64d\n " ,b,c,b+c);
printf("\n");
}
}
return 0;
} 展开
2个回答
展开全部
这道题的数字范围很大,所以你必须考虑大数运算,以下是我的ac代码,希望你能从代码中掌握大数运算的知识,加油
#include<string.h>
#include<stdio.h>
char a[21][100001],b[21][100001],f[21][1000001];int c[1000000];
int main()
{
int i,j,d,l1,l2,m;
scanf("%d",&i);
getchar();
for(j=1;j<=i;j++)
{
scanf("%s%s",a[j],b[j]);
l1=strlen(a[j])-1;
l2=strlen(b[j])-1;
for(m=1;m<=100000;m++)
{
c[m]=0;
}
m=0;
while(l1>=0&&l2>=0)
{
c[++m]+=a[j][l1]-'0'+b[j][l2]-'0';
if(c[m]>=10)
{
c[m+1]+=c[m]/10;
c[m]=c[m]%10;
}
l1--;l2--;
}
if(l1+1==0&&l2+1==0&&c[m+1]!=0)++m;
while(l1>=0)
{
c[++m]+=(int)a[j][l1]-48;l1--;
}
while(l2>=0)
{
c[++m]+=(int)b[j][l2]-48;l2--;
}
for(d=m;d>=1;d--)
{
f[j][m-d]=c[d]+'0';
}
}
for(j=1;j<=i;j++)
{
printf("Case %d:\n",j);
printf("%s + %s = ",a[j],b[j]);
printf("%s\n",f[j]);
if(j!=i)printf("\n");
}
}
#include<string.h>
#include<stdio.h>
char a[21][100001],b[21][100001],f[21][1000001];int c[1000000];
int main()
{
int i,j,d,l1,l2,m;
scanf("%d",&i);
getchar();
for(j=1;j<=i;j++)
{
scanf("%s%s",a[j],b[j]);
l1=strlen(a[j])-1;
l2=strlen(b[j])-1;
for(m=1;m<=100000;m++)
{
c[m]=0;
}
m=0;
while(l1>=0&&l2>=0)
{
c[++m]+=a[j][l1]-'0'+b[j][l2]-'0';
if(c[m]>=10)
{
c[m+1]+=c[m]/10;
c[m]=c[m]%10;
}
l1--;l2--;
}
if(l1+1==0&&l2+1==0&&c[m+1]!=0)++m;
while(l1>=0)
{
c[++m]+=(int)a[j][l1]-48;l1--;
}
while(l2>=0)
{
c[++m]+=(int)b[j][l2]-48;l2--;
}
for(d=m;d>=1;d--)
{
f[j][m-d]=c[d]+'0';
}
}
for(j=1;j<=i;j++)
{
printf("Case %d:\n",j);
printf("%s + %s = ",a[j],b[j]);
printf("%s\n",f[j]);
if(j!=i)printf("\n");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询