ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

拼多多笔试:大整数相乘

2019-07-27 18:55:06  阅读:208  来源: 互联网

标签:string int 笔试 len1 len2 相乘 多多 字符串 include


题目描述:

有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。

 

输入描述:
空格分隔的两个字符串,代表输入的两个大整数

输出描述:
输入的乘积,用字符串表示

示例1

输入:

72106547548473106236 982161082972751393

输出:

70820244829634538040848656466105986748

 

思路分析:

一道字符串相关的题。由于最高位可能存在进位,需要将两个字符串倒序,进行相乘,来判断进位。乘积的最大长度是不会超过两个字符串的长度和。还有就是这里没有输入负数的情况。

 

代码:

 1 #include<stdio.h>
 2 #include<iostream>
 3 #include<limits.h>
 4 #include<stdlib.h>
 5 #include<string>
 6 #include<vector>
 7 using namespace std;
 8 
 9 string mul(string s1, string s2)
10 {
11     vector<int> num1, num2;
12     int len1 = s1.length(), len2 = s2.length();
13     string s;
14     vector<int> num(len1+len2,0);
15     for(int i = len1-1; i>=0; i--)
16         num1.push_back(s1[i]-'0');
17     for(int i=len2-1; i>=0; i--)
18         num2.push_back(s2[i]-'0');
19     for(int i=0; i<len1; i++)
20     {
21         for(int j=0; j<len2; j++)
22         {
23             num[i+j] += num1[i]*num2[j];
24         }
25     }
26     for(int i = 0; i<len1+len2-1; i++)
27     {
28         num[i+1] += num[i]/10;
29         num[i] = num[i]%10;
30     }
31     if(num[len1+len2-1])
32         s += num[len1+len2-1]+'0';
33     for(int i = len1+len2-2; i>=0; i--)
34         s += num[i]+'0';
35     return s;
36 }
37 int main()
38 {
39     string str1, str2;
40     while(cin>>str1>>str2)
41     {
42         string s;
43         s = mul(str1, str2);
44         cout<<s<<endl;
45     }
46     return 0;
47 }

 

标签:string,int,笔试,len1,len2,相乘,多多,字符串,include
来源: https://www.cnblogs.com/LJ-LJ/p/11256246.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有