/*************************************************************************************
功能:大数相加
说明:
作者:nicehuai
日期:2015/2/0
************************************************************************************/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std ;
#define Max 100
void Big_Add(int *a,int *b,int *c) ;
void f( char *str,int *num) ;
void memset(int *str) ;
void print(int *num) ;
char str1[Max],str2[Max] ;
int a[Max],b[Max] ;
int main()
{
int n ;
int l1,l2,l ;
int c[Max] ;
while(1)
{
memset(a) ;
memset(b) ;
cin>>str1 ;
cin>>str2 ;
if( str1 == NULL && str2 == NULL )
{
break ;
}
else
{
f( str1,a ) ;
f( str2,b ) ;
Big_Add(a,b,a) ;
print(a) ;
}
}
}
void Big_Add(int *a,int *b,int *c)
{
int i = 0 ;
for( i = 0 ;i < Max ;i++)
{
c[i] = a[i] + b[i] ;
while(c[i] > 9)
{
c[i] %= 10 ;
c[i+1] += 1 ;
}
}
}
void f( char *str,int *num)
{
int l1 ;
int temp ;
int i,j ;
l1 = strlen(str) ;
for( i =0 ;str[i] != '\0' ;i++ )
{
num[i] = str[i] - '0' ;
}
for( i = 0,j = l1-1 ;i < j ;i++,j--)
{
temp = num[i] ;
num[i] = num[j] ;
num[j] = temp ;
}
}
void memset(int *str)
{
for(int i = 0 ;i < Max ;i++ )
{
str[i] = 0 ;
}
}
void print(int *num)
{
int i ;
for(i = Max-1 ;i >= 0 ;i--)
{
if( num[i] != 0 )
{
break ;
}
}
for(i ;i >= 0 ;i--)
{
cout<<num[i] ;
}
cout<<endl ;
}
大数相加
最新推荐文章于 2024-04-09 23:46:24 发布