Product UVA - 10106(大数乘法)
题目链接: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(大数乘法)相关推荐
- java大数运算详解【其三】大数乘法之平方算法之按位二次展开式算法
目录 java大数运算详解[其一]大数加减法 java大数运算详解[其二]大数乘法 java大数运算详解[其三]大数乘法之平方算法之按位二次展开式算法 java大数运算详解[其四]大数乘法之平方算法之 ...
- python递归算法 电影院票价问题_算法课堂实验报告(二)——python递归和分治(第k小的数,大数乘法问题)...
python实现递归和分治 一.开发环境 开发工具:jupyter notebook 并使用vscode,cmd命令行工具协助编程测试算法,并使用codeblocks辅助编写C++程序 编程语言:py ...
- c 语言乘法代码,C++实现大数乘法算法代码
C++实现大数乘法算法代码 //大数乘法算法 #include #include #include using namespace std; int main() { string num1,num2 ...
- Java实现大数乘法_java实现大数加法、乘法(BigDecimal)
之前写过用vector.string实现大数加法,现在用java的BigDecimal类,代码简单很多.但是在online-judge上,java的代码运行时间和内存大得多. java大数加法:求a+ ...
- 51nod 1027 大数乘法
1027 大数乘法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B ...
- 51 Nod 1027 大数乘法【Java大数乱搞】
1027 大数乘法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度 ...
- 牛客题霸 [ 大数乘法] C++题解/答案
牛客题霸 [ 大数乘法] C++题解/答案 题目描述 以字符串的形式读入两个数字,编写一个函数计算它们的乘积,以字符串形式返回. (字符串长度不大于10000,保证字符串仅由'0'~'9'这10种字符 ...
- 【恋上数据结构】贪心(最优装载、零钱兑换、0-1背包)、分治(最大连续子序列和、大数乘法)
贪心.分治 贪心(Greedy) 问题1:最优装载(加勒比海盗) 问题2:零钱兑换 零钱兑换的另一个例子 贪心注意点 问题3:0-1背包 0-1 背包 - 实例 一些习题 分治(Divide And ...
- 计算机大数乘法引发的思考 | CSDN 博文精选
作者 | dog250 责编 | 屠敏 出品 | CSDN博客 近日,看了小小的一道学而思数学作业: 计算 201×33×707+484×636321×33×707+484×6363 我知道肯定是把数 ...
- 51NOD-1028 大数乘法V2【大数】
1028 大数乘法 V2 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B ( ...
最新文章
- MATLAB中深度学习的数据集合
- mysql-proxy代理加mysql主从实现读写分离
- 懂「互联网语」的程序员,是个狠人。
- 机器学习算法概述:随机森林逻辑回归
- 浏览器加载渲染网页过程解析-总结
- 不能bostype没有元数据异常_手把手教你用Python画个箱形图,找出“脏数据”
- zookeeper安装_Centos7安装配置Zookeeper
- 7.4通过CRaSH管理Spring Boot和定义远程命令
- php 字体设计,时尚前沿:15个创意的3D字体设计艺术作品欣赏
- 添加logviewer用户
- Python办公自动化word 中插入图片和表格
- 计算机开机显示器闪,电脑开机后显示器闪烁怎么办
- PostgreSQL11 | pgadmin4基本使用
- linux分时间段循环执行脚本
- Android如何在账户设置中添加App的账户
- matlab 采样点数,信号频率、采样频率、频率分辨率以及FFT信号补零
- IDEA打包时clean报错Failed to delete
- mt2503 在MMI版本实现AT+CPBF
- 学习Java的第七天
- Git的基本使用方法教程(入门级)
热门文章
- Java实现餐厅点餐系统
- php path_info orig_path_info
- 山东大学计算机学院第二校园,山东大学本科生第二校园学习经历管理办法
- InfluxDB中Line Protocol理解
- exlc表格怎么换行_excel表格怎么换行_excel表格怎么换行上下换行
- C盘清理方法——基于spacesniffer软件和PatchCleaner软件
- UML之工具篇(Win10无法使用VGAPlayer播放asf格式与VGA课件的解决办法)
- 001_扎马步_初识hadoop
- Operator学习笔记
- 带你撸一台免费云服务器