首页 > 其他 > 详细

高精度乘法(高精乘以低精)

时间:2020-03-10 00:11:05      阅读:243      评论:0      收藏:0      [点我收藏+]
 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 const int N = 1e5+5;
 6 
 7 char a[N];
 8 
 9 struct bign{
10     int d[N];
11     int len;
12     bign(){
13         memset(d,0,sizeof(d));
14         len = 0;
15     }
16 };
17 
18 bign change(char *a){
19     bign c;
20     int len = strlen(a);
21     c.len = len;
22     for(int i=0; i<len; i++){
23         c.d[i] = a[len - i - 1] - 0;
24     }
25     return c;
26 }
27 
28 bign multi(bign a,int k){
29     bign c;
30     int carry = 0;
31     for(int i=0; i<a.len; i++){
32         int temp = a.d[i] * k + carry;
33         c.d[c.len++] = temp % 10;
34         carry = temp / 10;
35     }
36     while(carry != 0){
37         c.d[c.len++] = carry % 10;
38         carry /= 10;
39     }
40     return c;
41 }
42 
43 void print(bign c){
44     for(int i=c.len - 1; i>=0; i--){
45         printf("%d",c.d[i]);
46     }
47 }
48 
49 int main(){
50     int k;
51     scanf("%s%d",a,&k);
52     bign v = change(a);
53     print(multi(v,k));
54     return 0;
55 }

 

高精度乘法(高精乘以低精)

原文:https://www.cnblogs.com/zhangqiling/p/12452403.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!