wiki oi3117 高精度练习之乘法
给出两个正整数A和B,计算A*B的值。保证A和B的位数不超过500位。
读入两个用空格隔开的正整数
输出A*B的值
3 12
36
两个正整数的位数不超过500位
代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<algorithm>
using namespace std;
char a[],b[];
int c[],d[];//c存中间数据,d不断累加c得答案
int main()
{
memset(c,,sizeof(c));
memset(d,,sizeof(d));
cin>>a>>b;
int alen=strlen(a)-;
int blen=strlen(b)-;
for(int i=alen; i>=; i--)
{
int carry=,carry1=,k=,m=;//k作c的下标,m作d的下标,carry为c(乘)的进位,carry1为d(累加)的进位
for(int j=blen; j>=; j--)
{
int cc=(a[i]-'')*(b[j]-'')+carry;
c[k++]=cc%;
carry=cc/;
}
if(carry!=)c[k++]=carry;//注意乘最后一位后可能还有进位
// for(int n=k-1; n>=0; n--)printf("%d",c[n]);//查看c的中间数据
// printf("\n");
m=alen-i;
for(int l=; l<k; l++)
{
int cc=(d[m]+c[l])+carry1;
d[m++]=cc%;
carry1=cc/;
}
if(carry1!=)d[m++]=carry1;//注意累加到最后一位后可能还有进位
// for(int n=m-1; n>=0; n--)printf("%d",d[n]);
// printf("\n");
}
for(int n=m-; n>=; n--)printf("%d",d[n]);
printf("\n");
return ;
}
wiki oi3117 高精度练习之乘法的更多相关文章
- POJ 1001 解题报告 高精度大整数乘法模版
题目是POJ1001 Exponentiation 虽然是小数的幂 最终还是转化为大整数的乘法 这道题要考虑的边界情况比较多 做这道题的时候,我分析了 网上的两个解题报告,发现都有错误,说明OJ对于 ...
- POJ 1625 Censored!(AC自动机+DP+高精度)
Censored! Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 6956 Accepted: 1887 Descrip ...
- 【noip模拟赛10】奇怪的贸易 高精度
描述 刚结束了CS战斗的小D又进入了EVE的游戏世界,在游戏中小D是一名商人,每天要做的事情就是在这里买东西,再运到那里去卖.这次小D来到了陌生的X星,X星上有n种货物,小D决定每种都买走一些,他用a ...
- 加、减、乘、除 高精度 string
#include<stdio.h> #include<string> #include<string.h> #include<iostream> usi ...
- POJ 1625 Censored! (AC自己主动机 + 高精度 + DP)
题目链接:Censored! 解析:AC自己主动机 + 高精度 + 简单DP. 字符有可能会超过128.用map映射一下就可以. 中间的数太大.得上高精度. 用矩阵高速幂会超时,简单的DP就能解决时间 ...
- 【原创】AC自动机小结
有了KMP和Trie的基础,就可以学习神奇的AC自动机了.AC自动机其实就是在Trie树上实现KMP,可以完成多模式串的匹配. AC自动机 其实 就是创建了一个状态的转移图,思想很 ...
- 刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第五章 2(Big Number)
这里的高精度都是要去掉前导0的, 第一题:424 - Integer Inquiry UVA:http://uva.onlinejudge.org/index.php?option=com_onlin ...
- UVa 10213 (欧拉公式+Java大数) How Many Pieces of Land ?
题意: 一块圆形土地,在圆周上选n个点,然后两两连线,问把这块土地分成多少块? 分析: 首先紫书上的公式是错的,不过根据书上提供的思路很容易稍加修改得到正确答案! 然后推公式吧,这里用到平面图的欧拉公 ...
- 2014.11.12模拟赛【最小公倍数】| vijos1047最小公倍数
最小公倍数(lcm.c/.cpp/.pas) 题目描述 给定两个正整数,求他们的最小公倍数. 样例输入 28 12 样例输出 84 数据范围 对于40%数据:1<=a,b<=10^9 对于 ...
随机推荐
- HTTP学习笔记——URL与资源
什么是URL? 所有的东西都有一个标准化的东西,公交有线路号,飞机有航班号,个人有身份证号,你坐出租车,告诉司机师傅我要到石牌华师,他就能明白你的意思了.URL就是因特网资源的标准化名称.URL指向一 ...
- connot find one or more components. please reinstall the application
正在用 Visual Studio 2013 写程序,程序一直执行正常. 此时,手动把注册表"HKEY_USERS"的当前用户的权限删除.再运行程序会提示:“是否继续并运行上次的成 ...
- Node.js、Ionic、Cordova、AngualrJS安装
1.安装node.js: 从node.js官网下载node.js安装包,node.js下载地址:https://nodejs.org/en/download/,选择对应系统的安装下载后进行安装.(注: ...
- ArrayList-VS-LinkedList
ArrayList 是List接口的实现类:底层的数据结构是数组,而LinkedList底层数据结构是双向循环链表. 所以在查询时ArrayList效率高,增删时LinkedList高.由于List中 ...
- [LeetCode]题解(python):073-Set Matrix Zeroes
题目来源: https://leetcode.com/problems/set-matrix-zeroes/ 题意分析: 输入一个m×n矩阵,如果出现有0,那么将对应的行和列都变成0. 题目思路: 简 ...
- Android手机安全软件的恶意程序检测靠谱吗--LBE安全大师、腾讯手机管家、360手机卫士恶意软件检测方法研究
转载请注明出处,谢谢. Android系统开放,各大论坛活跃,应用程序分发渠道广泛,这也就为恶意软件的传播提供了良好的环境.好在手机上安装了安全软件,是否能有效的检测出恶意软件呢?下边针对LBE安全大 ...
- 读书笔记: 深入浅出node.js
>> 深入浅出node.js node.js是c++编写的js运行环境 浏览器: 渲染引擎 + js引擎 后端的js运行环境 node.js用google v8引擎,同时提供很多系统级的A ...
- Spinner样式大全
Spinner样式大全
- 您应该了解的 Windows Azure 网站在线工具
编辑人员注释:本文章由Windows Azure 网站团队的软件开发者 Amit Apple 撰写. 如果想要了解并亲身参与计算资源管理,那么您一定会很高兴得知这一消息:Windows Azur ...
- 如何调试MFC中的内存泄漏
转载地址:http://www.cnitblog.com/martin/archive/2006/04/21/9460.html 首先,应该是MFC报告我们发现内存泄漏.注意:要多运行几次,以确定输出 ...