题目
当两个比较大的整数相乘时,可能会出现数据溢出的情形。为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法。具体来说,首先以字符串的形式输入两个整数,每个整数的长度不会超过10位,然后把它们相乘的结果存储在另一个字符串当中(长度不会超过20位),最后把这个字符串打印出来。例如,假设用户输入为:62773417和12345678,则输出结果为:774980393241726

基本思路
模拟竖式,两层循环,对于x的每位,都要乘以y。

ps:在草稿纸上写写画画思路会更清晰。

//大整数乘法:模拟竖式
#include <stdio.h>
#include <iostream>
using namespace std;int x[10] = { 0 };
int y[10] = { 0 };
int temp;int arr[20] = { 0 };int main()
{int num1 = 0, num2 = 0;char ch;for (; ;){ch = getchar();if (ch!=' '){x[num1] = ch - 48;num1++;}else break;}//乘数 for (; ;){ch = getchar();if (ch != '\n'){y[num2] = ch - 48;num2++;}else break;}//被乘数 int cnt1 = 0,cnt2 = 0;for (int i = num1 - 1;i > -1;i--){for (int j = num2 - 1; j > -1; j--){arr[19 - cnt2 - cnt1] += x[i] * y[j];cnt2++;if (cnt2 == num2)cnt2 = 0;   }cnt1++;} int len = 0;for (int i = 0; i < 20; i++){if (arr[i] == 0)break;len++;}for (int i = 19; i > len - 1; i--){arr[i-1] +=arr[i] / 10;   //处理进位arr[i] %= 10;            //取个位数 }int flag = 0;for (int i = 0; i < 20; i++){if (arr[i] != 0 || flag==1){flag = 1;printf("%d", arr[i]);}}if(flag == 0)printf("0");return 0;
}

蓝桥杯 大整数乘法 试题 算法训练 P0805相关推荐

  1. java 整数乘法的算法,大整数乘法——分治算法的时间复杂度

    1.1原始的低效算法 我们将n位(为方便讨论简化问题,我们假设n是2的幂)十进制整数(二进制也可以)X.Y都分为2段,每段的长度是n/2位. 如果现在直接用递归或分治进行编程,其算法复杂度为: 其中: ...

  2. 大整数乘法---FFT算法

    //迭代FFT的乘法方法 // POJ 1405 Heritage /**  * input data mode:  *  the number array 1,2,3,4 use base U = ...

  3. PYTHON:大整数乘法(分治法)

    何为分治法: 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解.即一种分目标完成程序算法,简单问题可用二分法 ...

  4. 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解 - 未完善

    题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...

  5. 蓝桥杯 试题 算法训练 筛选号码 Java

    蓝桥杯 试题 算法训练 筛选号码Java 算法训练 筛选号码 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3 ...

  6. 蓝桥杯试题 算法训练 绘制地图

    蓝桥杯试题 算法训练 绘制地图 问题描述 最近,WYF正准备参观他的点卡工厂.WYF集团的经理氰垃圾需要帮助WYF设计参"观"路线.现在,氰垃圾知道一下几件事情: 1.WYF的点卡 ...

  7. 蓝桥杯:试题 算法训练 Remember the A La Mode

    蓝桥杯:试题 算法训练 Remember the A La Mode 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 Hugh Samston经营着一个为今年的ICPC世界总决赛的参 ...

  8. 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解

    题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...

  9. 蓝桥杯试题 算法训练 幂方分解

    试题 算法训练 幂方分解 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20 同时约定方次用括号来表示,即ab 可 ...

  10. 蓝桥杯 试题 算法训练 无聊的逗

    蓝桥杯 试题 算法训练 无聊的逗 问题描述 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘 ...

最新文章

  1. ajax实现自动刷新页面实例
  2. 构建更好的敏捷项目管理组织所需的4种工具
  3. 三分钟教会你搭建动态网络
  4. BZOJ4196:[NOI2015]软件包管理器——题解
  5. python2.7练习小例子(二)
  6. Toping Kagglers:Bestfitting,目前世界排名第一
  7. redis 备份导出rdb_Redis数据迁移利器之redisshake
  8. ActiveSupport::Concern 和 gem 'name_of_person'(300✨) 的内部运行机制分析
  9. Centos 升级GLIBCXX3.4.25
  10. 生产环境下戴尔 R820 kvm虚拟化部署二(物理主机系统优化)
  11. 编译原理学习笔记 4.5 自底向上分析方法
  12. 随机森林分类+随机森林回归+实例:用随机森林回归填补缺失值+机器学习调参思想+实例:随机森林在乳腺癌数据上的调参
  13. Matlab入门教程 | 001 球的体积问题
  14. 干货 | 做外贸必须掌握的小知识
  15. 王者荣耀英雄测试用例
  16. HDU 6045 Is Derek lying? 水题
  17. mwt是什么意思网络用语_skr、xswl、zsqg…这些网络用语你知道是什么意思吗?
  18. 为什么苹果手机通话的时候不能录音?
  19. (转贴)汉字转拼音缩写
  20. Axis1.4 远程命令执行(CVE-2019-0227)复现

热门文章

  1. 天弘基金:中国的BlackRock?
  2. 如何对国内股票的名称进行脱敏(待续)
  3. (转)知识图谱如何让智能金融“变魔术”
  4. 阿里云基础产品技术月刊 2018年12月
  5. 英特尔开源技术中心招收虚拟化工程师若干(北京/上海)
  6. java值传递人体自_请大家帮帮我这个初学者
  7. 【多目标优化求解】基于matlab自适应风驱动算法求解多目标优化问题【含Matlab源码 1414期】
  8. 【语音隐写】基于matlab GUI DWT+SVD音频水印嵌入【含Matlab源码 1409期】
  9. 【股价预测】基于matlab遗传算法优化BP神经网络预测股价【含Matlab源码 1250期】
  10. 【气动学】基于matlab改进的遗传和粒子群算法高斯烟羽模型模拟气体扩散【含Matlab源码 1061期】