/*
Name:
Copyright:
Author:
Date: 24/08/12 16:34
Description:
Reference: http://blog.csdn.net/tangxianghenggood/article/details/5776629
*/
#include<stdio.h>
#include<string.h>
int main()
{
char a[200] = {0};
char b[200] = {0};
int i=0,j=0,k=0;
int al=0;
int bl=0;
int result;
printf("please input a\n");
while((a[al] = getchar()) != '\n')
{
if(a[al] >= '0' && a[al] <= '9')
{
a[al] = a[al] - '0';
al++;
}
else {
printf("intput error");
exit(0);
}
}
printf("the number a is ");
for(i=0;i<al;i++) printf("%d",a[i]);
printf("\n");
printf("please input b\n");
while((b[bl] = getchar()) != '\n')
{
if(b[bl] >= '0' && b[bl] <= '9')
{
b[bl] = b[bl] - '0';
bl++;
}
else {
printf("intput error");
exit(0);
}
}
printf("the number b is ");
for(i=0;i<bl;i++) printf("%d",b[i]);
printf("\n");
if(al >= bl)
{
j = al;
k = bl;
for(;bl > 0;)
{
result = (a[al-1]+b[bl-1])/10;
a[al-1] = (a[al-1]+b[bl-1])%10;
al --;
bl --;
a[al-1] = a[al-1] + result;
}
if(result > 0)
for(;al > 1;)
{
al --;
a[al-1] += a[al]/10;
a[al] %= 10;
}
for(i=0;i<j;i++) printf("%d",a[i]);
}
else {
j = al;
k = bl;
for(;al > 0;)
{
result = (a[al-1]+b[bl-1])/10;
b[bl-1] = (a[al-1]+b[bl-1])%10;
al --;
bl --;
b[bl-1] = b[bl-1] + result;
}
if(result > 0)
for(;bl > 1;)
{
bl --;
b[bl-1] += b[bl]/10;
b[bl] %= 10;
}
for(i=0;i<k;i++) printf("%d",b[i]);
}
getchar();
}
大数相加
最新推荐文章于 2024-04-09 23:46:24 发布