博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大数乘法
阅读量:6250 次
发布时间:2019-06-22

本文共 1226 字,大约阅读时间需要 4 分钟。

  很久没手写过大数运算了,以前也都是直接贴模板的,今晚的模拟笔试最后一道大数乘法就没调好,gg……

#include 
#include
#include
#include
using namespace std;string num1, num2;int result[2048] = {
0};inline int chtoi(char ch) { return ch - '0' + 0;}#define For(i,s,t) for(int i = s; i < t; ++i)inline void cal() { int len1 = num1.size(), len2 = num2.size(), LL = len1 + len2; memset(result, 0, sizeof(result)); int h1 = len1 >> 1, h2 = len2 >> 1; For(i, 0, h1) swap(num1[i], num1[len1 - 1 - i]); For(i, 0, h2) swap(num2[i], num2[len2 - 1 - i]); For(i, 0, len1) For(j, 0, len2) result[i + j] += chtoi(num1[i]) * chtoi(num2[j]); For(i, 0, LL) { result[i + 1] += result[i] / 10; result[i] %= 10; } while(LL > 1 && result[LL - 1] == 0) --LL; int half = LL >> 1; for(int i = 0; i < half; ++i) swap(result[i], result[LL - 1 - i]); for(int i = 0; i < LL; ++i) cout << result[i] ; cout << endl;}int main() { while(cin >> num1 >> num2) { cal(); }}

  有很多细节笔试时都没处理好,后来才调好的,还是功力不够啊,不过不得不说笔试的时间还是挺赶的,选择题10多道半个小时感觉也不够用,下次得练得快一点才行了……编程题3道也不太会。。。

转载于:https://www.cnblogs.com/Newdawn/p/5321495.html

你可能感兴趣的文章
docker整理文档
查看>>
zabbix安装配置
查看>>
Awk练习笔记
查看>>
RAID级别详解,如何在Linux下实现软RAID图文解析。
查看>>
CentOS 配置***客户端
查看>>
线上应用故障排查之二:高内存占用
查看>>
书写「简历」时,需要规避的错误
查看>>
我的友情链接
查看>>
老毛桃 win7
查看>>
continue
查看>>
myeclise10安装svn的方法
查看>>
第四次作业
查看>>
4196. [NOI2015]软件包管理器【树链剖分】
查看>>
Apache Spark源码走读之20 -- ShuffleMapTask计算结果的保存与读取
查看>>
css3 calc()的用法
查看>>
Effective Java --使类和成员的可访问性最小化
查看>>
Ext 4.2.1 教大家如何去规避ext-all和动态加载机制的优缺点
查看>>
83. Remove Duplicates from Sorted List(从有序链表中删除重复节点)
查看>>
异常处理汇总 ~ 修正果带着你的Code飞奔吧!
查看>>
软件测试行业趋势分析和思考
查看>>