/*************************************************************************************
功能:大数乘
说明:
作者:nicehuai
日期:2015/2/10
************************************************************************************/
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std ;
#define Max 100
void Big_Time(int *a,int *b,int *c) ;
void f( char *str,int *num) ;
void memset(int *str) ;
void print(int *num) ;
int main()
{
int a[Max],b[Max],c[Max] ;
char str1[Max],str2[Max] ;
while(1)
{
memset(a) ;
memset(b) ;
memset(c) ;
cin>>str1>>str2 ;
f(str1,a) ;
f(str2,b) ;
Big_Time(a,b,c) ;
print(c) ;
}
return 0 ;
}
void Big_Time(int *a,int *b,int *c)
{
int i,j;
for( i = 0 ;i < Max ;i++)
for( j = 0 ;j < Max ;j++)
{
c[i] += a[i] * b[j] ;
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-08-29 20:40:47 发布