2017.8.1拼多多内推内推笔试题(2)—大数相乘
2017-08-05 22:48
337 查看
第二个题目相对思路比较简单:
这里就简单说一下,首先题目要求是:
题目要求
有两个用字符串表示的非常大的整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。
题目思路
思路是将两个字符串分别转换成数字分别存入两个数组,并对两个数组模拟乘法最后得到结果。
下面直接给出整体思路代码:
这里就简单说一下,首先题目要求是:
题目要求
有两个用字符串表示的非常大的整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。
题目思路
思路是将两个字符串分别转换成数字分别存入两个数组,并对两个数组模拟乘法最后得到结果。
下面直接给出整体思路代码:
#include <iostream> #include <string> #include <algorithm> using namespace std; const int N=1e5+10; int a ,b ,r ; void solve(int a[],int b[],int a_l,int b_l) { for(int i=0;i!=N;i++) r[i]=0; for (int i=0;i<a_l;i++) { for (int j = 0; j <b_l; j++) { int k = i + j; r[k] += a[i] * b[j]; while(r[k] > 9) { r[k + 1] += r[k] / 10; r[k] %= 10; k++; } } } int l = a_l + b_l - 1; while(r[l] == 0 && l > 0) l--; for(int i = l; i >= 0; i--) cout << r[i]; cout << endl; } int main() { string str1,str2; while (cin>>str1>>str2) { for(int i=0;i<str1.size();i++) a[i]=str1[str1.size()-1-i]-'0'; for (int i=0;i<str2.size();i++) b[i]=str2[str2.size()-1-i]-'0'; solve(a,b,str1.size(),str2.size()); } return 0; }
相关文章推荐
- 拼多多笔试题第一题,大数相乘
- 拼多多内推笔试二:数字字符串两个字符串相乘/大数相乘
- 新浪笔试:大数相乘.
- 2017.8.1拼多多内推内推笔试题(4)—迷宫寻路(状态压缩+BFS)
- 【笔试面试】大数相乘
- 华为笔试——第三题 大数相乘
- 2017.8.1拼多多内推内推笔试题(3)—六一儿童节(贪心问题)
- Java笔试题:两个大数相乘
- 2017.8.1拼多多内推内推笔试题(1)—最大乘积的求取(分治求K大(小))
- 拼多多笔试_探险家冒险和大数问题
- 2015年校招--华为上机笔试题--大数相乘
- 分治算法思想(4)未——两个大数相乘,欧冠冠军杯比赛日程安排
- 大数相乘解决办法,用字符串表示的大数
- Multiply Strings 大数相乘 java
- java大数相乘算法
- 大数相乘
- 【笔试题】拼多多2018校招内推编程
- 算法:大数相乘,用字符串表示
- 大数相乘
- 大数乘法的几种算法分析及比较(2014腾讯南京笔试题)