您的位置:首页 > 其它

大数相加的问题

2010-10-11 21:03 302 查看
大数相加的问题我是今年的5月份的时候曾经写过相关的代码,但是今天用到的时候却编译怎么也通不过去,后来发现在初始化的时候发现了错误,不过整体而言,大数相加是大数运算中应该是最简单的一种了吧。只需注意进位即可,还有就是用字符串来处理(估计是废话,因为谁都知道),那么我们需要注意的又是什么呢,当然,注意的就是细节问题,首先我们应该对输入的字符进行倒置,为什么这样做,想想小学时你是怎么运算的就应该知道了,还有就是进位,这两个应该是关键的两点,剩下的就是输出,想想输出应该怎么输出,需要注意下什么。好了,我用5月份的在hdoj上做的题来说明这个问题吧,想通了还是很简单,我直接上代码,不懂的再问。

C语言: Codee#14290
#include <stdio.h>
#include <string.h>
int main()
{
char a[1000],b[1000],c[1000],d[1000];
int n,l1,l2,i,j,k=1,m;
scanf("%d",&n);
m=n;
while(n--)
{
j=0;
memset(a,'/0',sizeof(a));
memset(b,'/0',sizeof(b));
memset(c,'/0',sizeof(c));
memset(d,'/0',sizeof(d));
scanf("%s%s",a,b);
l1=strlen(a);
l2=strlen(b);
for(i=l1-1;i>=0;i--)
{
c[j++]=a[i]-'0';
}
j=0;
for(i=l2-1;i>=0;i--)
{
d[j++]=b[i]-'0';
}
if(l1<l2)l1=l2;
for(i=0;i<l1;i++)
{
c[i]+=d[i];
if(c[i]>=10)
{
c[i]=c[i]-10;
c[i+1]++;
}
}
printf("Case %d:/n",k++);
printf("%s + %s = ",a,b);

for(i=l1-1;i>=0;i--)
printf("%d",c[i]);
printf("/n");
if(k!=m+1)
printf("/n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: