一道C语言即简单又恶心的ACM题,求高人帮忙。
大家都知道OJ上的最简单的题目就是A+B了,今天我们还是做这个A+B,不过这个数非常大,两个加数的位数不超过100000位,请你写个程序试试吧。SampleInput:1...
大家都知道OJ上的最简单的题目就是A+B了,今天我们还是做这个A+B,不过这个数非常大,两个加数的位数不超过100000位,请你写个程序试试吧。
Sample Input:
12345
67890123
Sample Output:
67902468
(long/float/double/__int64这些我都用过了,还是wrong anwser...) 展开
Sample Input:
12345
67890123
Sample Output:
67902468
(long/float/double/__int64这些我都用过了,还是wrong anwser...) 展开
2个回答
展开全部
#include<stdio.h>
#include<string.h>
void main(void)
{
char a[1000],b[1000];
int c[1000],k,i,j,m;
while(scanf("%s%s",a,b)!=EOF){
i=strlen(a);
j=strlen(b);
m=0;
for(k=0,i=i-1,j=j-1;i>=0&&j>=0;i--,j--,k++)
{
c[k]=(a[i]-'0'+b[j]-'0'+m)%10;
m=(a[i]-'0'+b[j]-'0'+m)/10;
}
for(;i>=0;i--,k++)
{
c[k]=(a[i]-'0'+m)%10;
m=(a[i]-'0'+m)/10;
}
for(;j>=0;j--,k++)
{
c[k]=(b[j]-'0'+m)%10;
m=(b[j]-'0'+m)/10;
}
c[k]=m;
if(c[k])
{
for(;k>=0;k--)
printf("%d",c[k]);
printf("\n");
}
else
{
for(k=k-1;k>=0;k--)
printf("%d",c[k]);
printf("\n");
}
}
}
#include<string.h>
void main(void)
{
char a[1000],b[1000];
int c[1000],k,i,j,m;
while(scanf("%s%s",a,b)!=EOF){
i=strlen(a);
j=strlen(b);
m=0;
for(k=0,i=i-1,j=j-1;i>=0&&j>=0;i--,j--,k++)
{
c[k]=(a[i]-'0'+b[j]-'0'+m)%10;
m=(a[i]-'0'+b[j]-'0'+m)/10;
}
for(;i>=0;i--,k++)
{
c[k]=(a[i]-'0'+m)%10;
m=(a[i]-'0'+m)/10;
}
for(;j>=0;j--,k++)
{
c[k]=(b[j]-'0'+m)%10;
m=(b[j]-'0'+m)/10;
}
c[k]=m;
if(c[k])
{
for(;k>=0;k--)
printf("%d",c[k]);
printf("\n");
}
else
{
for(k=k-1;k>=0;k--)
printf("%d",c[k]);
printf("\n");
}
}
}
展开全部
#include <stdio.h>
int main()
{
long int i,j;
scanf("%d %d",&i,&j);
printf("%d",i+j);
system("pause");
}
int main()
{
long int i,j;
scanf("%d %d",&i,&j);
printf("%d",i+j);
system("pause");
}
追问
错误
追答
long int 可以支持到2 147 483 648,你的问题足够用了。
如果还不够用,你可以用 unsigned long int,最高支持到 4 294 967 295
另外,你可以看我另外一个回答,可以计算任意大小的数据的加减乘除。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |