您的位置:首页 > 编程语言 > C语言/C++

c语言实现长数字相加算法

2014-10-05 22:00 190 查看
最近突然有写博客的的想法了,真真让我下定决心写博客的事件是电脑硬盘坏了,坏的很彻底,500G的数据啊,陪伴了我三年的数据就这样一点都没剩下全没了,写了三年的程序代码(3年的积累,学习编程的辛酸历程)全没了。

好了,废话有点多了,进入正题。思路啥的也不说了,代码很简单,看下就懂了,第一次写我就从简了,嘿嘿:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

int main()

{
char a[31],b[31],c[31],smallStr[31],bigStr[31];
int small,big,temp,str1_len,str2_len,i,j,goHead=0,k;
while(scanf("%s %s",a,b)!=EOF)
{
str1_len=strlen(a);
str2_len=strlen(b);
i=str1_len;
j=str2_len;
if(i>=j) 
{
small=j;
big=i;
for(i=0;i<=big;i++)
{
bigStr[i]=a[i];
}
for(i=0;i<small;i++)
{
smallStr[i]=b[i];
}
}
else 
{
small = i;
big = j;
for(i=0;i<=big;i++)
{
bigStr[i]=b[i];
}
for(i=0;i<small;i++)
{
smallStr[i]=a[i];
}
}
for(k=big;k>0;k--)
{
if(small>0)
{
temp=bigStr[k-1]-48+smallStr[small-1]-48+goHead;
small--;
}
else
{
temp=bigStr[k-1]+goHead-48;
}
if(temp>=10)
{
goHead =1;
c[k] = temp+38;
}
else
{
goHead=0;
c[k] = temp+48;
}
}
c[big+1]='\0';
if(goHead==1)
c[0]=49;
else
{
for(i=0;i<=big;i++)
{
c[i]=c[i+1];
}
}
printf("%s\n",c);
goHead=0;
}

}

过几天我就会开始写自己学习html的笔记了。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐