multiply of big Number
2012-11-30 10:45
267 查看
void
multiply(const
char
*a,const
char
*b)
24
{
25
int
i,j,ca,cb,*s;
26
ca=strlen(a);
27
cb=strlen(b);
28
s=(int
*)malloc(sizeof(int)*(ca+cb));
//分配存储空间
29
for
(i=0;i<ca+cb;i++)
s[i]=0;
//
每个元素赋初值0
30
31
for
(i=0;i<ca;i++)
32
for
(j=0;j<cb;j++)
33
s[i+j+1]+=(a[i]-'0')*(b[j]-'0');
34
35
for
(i=ca+cb-1;i>=0;i--)
//
这里实现进位操作
36
if
(s[i]>=10)
37
{
38
s[i-1]+=s[i]/10;
39
s[i]%=10;
40
}
41
42
char
*c=(char
*)malloc((ca+cb)*sizeof(char));
//分配字符数组空间,因为它比int数组省!
43
i=0;while(s[i]==0)
i++;
//
跳过头部0元素
44
for
(j=0;i<ca+cb;i++,j++)
c[j]=s[i]+'0';
45
c[j]='\0';
46
for
(i=0;i<ca+cb;i++)
cout<<c[i];
47
cout<<endl;
48
free(s);
49
}
multiply(const
char
*a,const
char
*b)
24
{
25
int
i,j,ca,cb,*s;
26
ca=strlen(a);
27
cb=strlen(b);
28
s=(int
*)malloc(sizeof(int)*(ca+cb));
//分配存储空间
29
for
(i=0;i<ca+cb;i++)
s[i]=0;
//
每个元素赋初值0
30
31
for
(i=0;i<ca;i++)
32
for
(j=0;j<cb;j++)
33
s[i+j+1]+=(a[i]-'0')*(b[j]-'0');
34
35
for
(i=ca+cb-1;i>=0;i--)
//
这里实现进位操作
36
if
(s[i]>=10)
37
{
38
s[i-1]+=s[i]/10;
39
s[i]%=10;
40
}
41
42
char
*c=(char
*)malloc((ca+cb)*sizeof(char));
//分配字符数组空间,因为它比int数组省!
43
i=0;while(s[i]==0)
i++;
//
跳过头部0元素
44
for
(j=0;i<ca+cb;i++,j++)
c[j]=s[i]+'0';
45
c[j]='\0';
46
for
(i=0;i<ca+cb;i++)
cout<<c[i];
47
cout<<endl;
48
free(s);
49
}
相关文章推荐
- UVA11734_Big Number of Teams will Solve This
- UVa 11734 - Big Number of Teams will Solve This
- fatal error C1128: number of sections exceeded object file format limit : compile with /bigobj 的解决办
- [转] A sample of Multiply-with-carry, a pseudo-random number generator
- fatal error C1128: number of sections exceeded object file format limit : compile with /bigobj 的解决办法
- quick count the number of the rows in a big table
- error:Maximum number of result rows retrieved per report was exceeded
- *[codility]Number-of-disc-intersections
- Given life time of different animals. Find period when maximum number of animals lived
- Codeforces Beta Round #92 (Div. 2) / 124A The number of positions 【简单模拟】【水题】
- check a int number is power of 2?
- LeetCode:Letter Combinations of a Phone Number
- Leetcode|Number of Islands
- 浅析getPhysicalNumberOfCells 和 getLastCellNum的区别
- [LeetCode]Letter Combinations of a Phone Number
- leetcode之Letter Combinations of a Phone Number
- HDU 1293 The Number of Paths
- 2007:Part Number System of a USA networking company
- leetcode-Letter Combinations of a Phone Number
- Note of big data dummies:Looking at Real-Time and Non-Real-Time Requirements