这个题的思路,走的是最基本的转字符,然后按乘法规则计算。

string CalBigNum(string Num1, string Num2)
{
int Num1SZ = Num1.size(), Num2SZ = Num2.size();
string Answer(Num1SZ + Num2SZ, '0');
for (int i = Num2SZ - 1; i >= 0; --i)
{
int MulCarry = 0, AddCarry = 0;
for (int j = Num1SZ - 1; j >= 0; --j)
{
int temp1 = (Num2[i] - '0')*(Num1[j] - '0') + MulCarry;
MulCarry = temp1 / 10;//乘法后的进位
temp1 = temp1 % 10;//进位后在,该位上剩下的数
int temp2 = Answer[i + j + 1] - '0' + temp1 + AddCarry;//本位数加上进位后剩下的数,加上前一位上的进位数
Answer[i + j + 1] = temp2 % 10 + '0';//这位等于之前算出的和模10
AddCarry = temp2 / 10;//进位等于这个数除10;
}
Answer[i] += MulCarry + AddCarry;//两个进位(乘法和加法)
}
if (Answer[0] == '0'&&Answer[1] != '0')
Answer = Answer.substr(1, Answer.size());//防止第一位为0(初始分配位置)
else if (Answer[0] == '0'&&Answer[1] == '0') {
Answer = Answer.substr(0, 1);//将全为0 输出为一个0
}
return Answer;
}

int main()
 {
string num1, num2;
while (cin >> num1 >> num2)
{
if (num1.find('-') != -1 && num2.find('-') == -1) {
num1 = num1.substr(num1.find('-')+1);
cout <<"-"<< CalBigNum(num1, num2) << endl;
}
else if (num1.find('-') == -1&& num2.find('-') != -1) {
num2 = num2.substr(num2.find('-') + 1);
cout << "-" << CalBigNum(num1, num2) << endl;
}
else {
cout << CalBigNum(num1, num2) << endl;
}
}
return 0;
 }

大数乘法(华为勇敢星第三题)相关推荐

  1. 求最长数字串(华为勇敢星笔试第一题)

    因为当时做笔试的时候,是从后向前做的(第三题是大数相乘,思路比较清晰) 第二题卡了很久,所以这题的时间不是很充裕,就用了最直观的方法写的 当时没AC,通过率百分之80,现在想来应该是输出空的时候有问题 ...

  2. 华为勇敢星实习生招聘面试经历和华为优招面试经历

      我参加的是华为2017年(针对18年毕业的应届生)武长地区的华为优招,面试之前也在网上搜了很长时间的关于优招的面试经验贴,没有搜到多少相关的资料.所以写下这篇帖子,希望能够帮到后续参加华为优招的同 ...

  3. 2020届华为勇敢星实习面试经验贴-------硬件类逻辑岗位

    本次2020届西北地区华为勇敢星始于2019.03.06,结束于2019.03.23,整个过程持续17天,可以说华为的办事效率还是很高的,不像某些公司,投了简历之后一直吊着你,简历一直处于初筛阶段,根 ...

  4. 记一次华为勇敢星IT应用软件开发实习收获总结

    无憾勇敢星 --记一次非常有趣有收获的实习经历 华为实习生招聘开始是在三四月份,报了名想去尝试下,内心其实是非常忐忑的,因为作者当时大三计划保研,公司实习意味着占用暑假的时间,会因为各种原因放弃一些夏 ...

  5. 2019.4.19华为勇敢星实习之算法工程师(自然语言处理方向)面试经验(EE转CS)

    这是写的第一篇博客,内容方面只是我个人经历,仅供各位大佬参考一二: 1.本人情况: 本科211工程.保研至中部985,加权成绩均90,本科三年国家励志奖,另有国家级奖项一项,省级二项,校级十余项,一项 ...

  6. 2020华为勇敢星实习面经

    2020华为实习 0 写在前面 1 简历 2 机试 3 一面 3.1 C cdecl规范等 3.2 项目 3.3 linux相关 4 二面 4.1 int(*a)[10] 和 int *a[10] 4 ...

  7. 2021-4-28华为勇敢星实习笔试记录

    写在前面:其实第一题第二题都挺简单的,难的是第三题.在考场上第一题对0的处理不好,导致没有AC:第二题其实就完成一个数字到字符串的映射就可以了,然后去环这一步其实不用刻意去处理,因为只要成环的话,它就 ...

  8. 20届华为勇敢星实习面试记录

    1.概述 这篇应该算杂文,因为现场面试需要等待,以及地铁上有点时间,除了正式的东西还有一些乱七八糟的描述和感受,想看面经的还是看我GitHub吧??? https://github.com/espec ...

  9. 记录华为勇敢星实习的一次面经

    首先写在开头,人生投的第一份实习,算是走完了所有流程,结果未知,华为面试得好好准备项目,大概率基本问项目,有项目的聊得比较愉快,(尤其是对口的项目,面试官很喜欢的),没有的怼基础. 我一面面了一个小时 ...

最新文章

  1. Java项目:在线考试系统(java+springboot+vue+jsp+mysql+maven)
  2. Git之删除本地无用分支
  3. 如何在没有Springockito的情况下模拟Spring bean
  4. 如何在Jetty中使用SPDY
  5. 关于工业级RS485串口服务器的组网方式详解
  6. mysql8.0设置用户权限_mysql8.0建立用户授予权限报错解决方法
  7. 转行数据分析,是选Python还是R?
  8. Eclipse找不到或无法加载主类
  9. OCR(联机手写汉字识别)
  10. go——垃圾回收机制(GC)
  11. inpur标签的各种type
  12. jqGrid subGrid配置 如何首次加载动态展开所有的子表格
  13. vant-Weapp实现省市区三级联动顶部弹出列表
  14. 多任务学习(MTL)--学习笔记
  15. 【java初学】static关键字和接口
  16. IT 人需知道的十大定律
  17. 【SqlServer】错误 0xc00470fe: 数据流任务: 产品级别对于 组件“源 - TestDB01$”(1) 而言不足
  18. Q2日活1.86亿创新高 推特还能打好一场翻身战吗?
  19. js 判断16种风向角度
  20. 开博尔智能android播放器C3,Kaiboer开博尔C3第九代双核智能机顶盒KIUI 7.0安卓4.4.2线刷固件 电视盒固件 开博尔...

热门文章

  1. 成都传智播客就业班简介
  2. 微型计算机DMA传送实验
  3. 最长字符子串c语言,c语言:最长对称子串(3种解决方案)
  4. 【语音去噪】谱减法+维纳滤波+卡尔曼滤波语音去噪【含Matlab源码 1881期】
  5. Echarts 数据在x轴下方展示
  6. 惠普前总裁孙振耀指点职业规划。
  7. RNN循环神经网络(AI写唐诗)
  8. Python+大数据-数据处理与分析(三)-数据清洗
  9. 24 3.5stack容器
  10. Python -- Git服务器搭建