题目链接:UVA 10106

大数乘法模板题,直接上代码。

#include <iostream>
#include <cstring>
#include <cstdio>using namespace std;const int N=256;
char x[N],y[N],ans[N*2];void multiply()
{int xx[N]={0},yy[N]={0},zz[N*2]={0};int lenx=strlen(x)-1;int leny=strlen(y)-1;int cnt=0;while(lenx>=0)   //从低位到高位储存xxx[cnt++]=x[lenx--]-'0';lenx=cnt-1;cnt=0;while(leny>=0)   //从地位到高位储存yyy[cnt++]=y[leny--]-'0';leny=cnt;/*printf("xx:");for(int i=0;i<=lenx;i++)printf("%d",xx[i]);printf("\n");printf("yy:");for(int i=0;i<leny;i++)printf("%d",yy[i]);printf("\n");*/for(int i=0;i<=lenx;i++){int w=0; //记录进位的值for(int j=0;j<=leny;j++) //leny为当前yy数组的长度,这样可以防止最后w不为0{int res=xx[i]*yy[j]+w; //对应位相乘后再加上进位zz[i+j]+=res%10; //通过(i+j)寻找对应位非常巧妙w=res/10+zz[i+j]/10; //更新进位的值zz[i+j]%=10;}}int len=lenx+leny+2;while(zz[len]==0&&len>=0) //删去数字的前导0len--;if(len<0) //对于积为0的情况特判{ans[0]='0';ans[1]='\0';return ;}/*printf("zz:");for(int i=0;i<=len;i++)printf("%d",zz[i]);printf("\n\n");*///将乘积反转使得高位在前,低位在后,然后通过字符串直接输出ans[len+1]='\0';int tem=0;while(len>=0)ans[tem++]=zz[len--]+'0';
}int main()
{while(~scanf("%s%s",x,y)){memset(ans,0,sizeof(ans));multiply();printf("%s\n",ans);}return 0;
}

Product UVA - 10106(大数乘法)相关推荐

  1. java大数运算详解【其三】大数乘法之平方算法之按位二次展开式算法

    目录 java大数运算详解[其一]大数加减法 java大数运算详解[其二]大数乘法 java大数运算详解[其三]大数乘法之平方算法之按位二次展开式算法 java大数运算详解[其四]大数乘法之平方算法之 ...

  2. python递归算法 电影院票价问题_算法课堂实验报告(二)——python递归和分治(第k小的数,大数乘法问题)...

    python实现递归和分治 一.开发环境 开发工具:jupyter notebook 并使用vscode,cmd命令行工具协助编程测试算法,并使用codeblocks辅助编写C++程序 编程语言:py ...

  3. c 语言乘法代码,C++实现大数乘法算法代码

    C++实现大数乘法算法代码 //大数乘法算法 #include #include #include using namespace std; int main() { string num1,num2 ...

  4. Java实现大数乘法_java实现大数加法、乘法(BigDecimal)

    之前写过用vector.string实现大数加法,现在用java的BigDecimal类,代码简单很多.但是在online-judge上,java的代码运行时间和内存大得多. java大数加法:求a+ ...

  5. 51nod 1027 大数乘法

    1027 大数乘法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B ...

  6. 51 Nod 1027 大数乘法【Java大数乱搞】

    1027 大数乘法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度 ...

  7. 牛客题霸 [ 大数乘法] C++题解/答案

    牛客题霸 [ 大数乘法] C++题解/答案 题目描述 以字符串的形式读入两个数字,编写一个函数计算它们的乘积,以字符串形式返回. (字符串长度不大于10000,保证字符串仅由'0'~'9'这10种字符 ...

  8. 【恋上数据结构】贪心(最优装载、零钱兑换、0-1背包)、分治(最大连续子序列和、大数乘法)

    贪心.分治 贪心(Greedy) 问题1:最优装载(加勒比海盗) 问题2:零钱兑换 零钱兑换的另一个例子 贪心注意点 问题3:0-1背包 0-1 背包 - 实例 一些习题 分治(Divide And ...

  9. 计算机大数乘法引发的思考 | CSDN 博文精选

    作者 | dog250 责编 | 屠敏 出品 | CSDN博客 近日,看了小小的一道学而思数学作业: 计算 201×33×707+484×636321×33×707+484×6363 我知道肯定是把数 ...

  10. 51NOD-1028 大数乘法V2【大数】

    1028 大数乘法 V2  基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B ( ...

最新文章

  1. MATLAB中深度学习的数据集合
  2. mysql-proxy代理加mysql主从实现读写分离
  3. 懂「互联网语」的程序员,是个狠人。
  4. 机器学习算法概述:随机森林逻辑回归
  5. 浏览器加载渲染网页过程解析-总结
  6. 不能bostype没有元数据异常_手把手教你用Python画个箱形图,找出“脏数据”
  7. zookeeper安装_Centos7安装配置Zookeeper
  8. 7.4通过CRaSH管理Spring Boot和定义远程命令
  9. php 字体设计,时尚前沿:15个创意的3D字体设计艺术作品欣赏
  10. 添加logviewer用户
  11. Python办公自动化word 中插入图片和表格
  12. 计算机开机显示器闪,电脑开机后显示器闪烁怎么办
  13. PostgreSQL11 | pgadmin4基本使用
  14. linux分时间段循环执行脚本
  15. Android如何在账户设置中添加App的账户
  16. matlab 采样点数,信号频率、采样频率、频率分辨率以及FFT信号补零
  17. IDEA打包时clean报错Failed to delete
  18. mt2503 在MMI版本实现AT+CPBF
  19. 学习Java的第七天
  20. Git的基本使用方法教程(入门级)

热门文章

  1. Java实现餐厅点餐系统
  2. php path_info orig_path_info
  3. 山东大学计算机学院第二校园,山东大学本科生第二校园学习经历管理办法
  4. InfluxDB中Line Protocol理解
  5. exlc表格怎么换行_excel表格怎么换行_excel表格怎么换行上下换行
  6. C盘清理方法——基于spacesniffer软件和PatchCleaner软件
  7. UML之工具篇(Win10无法使用VGAPlayer播放asf格式与VGA课件的解决办法)
  8. 001_扎马步_初识hadoop
  9. Operator学习笔记
  10. 带你撸一台免费云服务器