#include
#define Num_Max 15
#define Num_Min 0
/*********************************************************************
Function: 计算两个大数据相乘
Author: yangjian
Date: 2013/11/17
Coution: 此算法只能计算每一个位上最大值为99的数。
**********************************************************************/
int main(int argc, char *argv[])
{
int i = 0;
int j = 0;
int sz2[Num_Max]= {2, 9, 6, 9, 9, 8, 7, 6, 6, 8, 9, 4 ,5, 6, 7};
int sz1[Num_Max]= {8, 9, 6, 9, 6, 7, 8, 9, 8, 9, 7, 8, 9, 4, 8};
int szOut[Num_Max * 2] = {0};
for (i = Num_Max - 1; i >= Num_Min; i--)
{
for (j = Num_Max - 1; j >= Num_Min; j--)
{
szOut[i + j + 1] += sz2[j] * sz1[i];
/*大于10则将十位数存到tmp中, 个位数保存到sz2[j]中*/
if (9 < szOut[i + j + 1])
{
szOut[(i + j + 1) - 1] += szOut[i + j + 1] / 10;
if (9 < szOut[(i + j + 1) - 1])
{
szOut[(i + j + 1) - 2] += szOut[(i + j + 1) - 1] / 10;
szOut[(i + j + 1) - 1] = szOut[(i + j + 1) - 1] % 10;
}
szOut[i + j + 1] = szOut[i + j + 1] % 10;
}
}
}
printf("\r\n The szOut is:");
for (i = 0; i < Num_Max * 2; i++)
{
printf("%d", szOut[i]);
}
printf("\r\n");
return 0;
}
大数据相乘
最新推荐文章于 2016-07-20 11:49:00 发布