
高精度
shiyicode
已弃用! 可以通过shiyi@threebody.xyz联系我
展开
-
c++实现大数加法(含负数)
题外话 一直想好好的把所有大数操作好好敲一遍,都止于惰性,碰到一个要用到大数的题,索性就由此开始吧。 大数加法写过太多次了,含负数的第一次写,用运算符重载的形式实现,挺有意思。思路 当两数符号相同时,相加即可,重点内容结果符号不变。 不同时,需要对两数的绝对值进行比较,结果符号与绝对值大的数符号相同,然后用大的减去小的。代码#include <stdio.h>#includ原创 2015-12-21 23:11:10 · 6452 阅读 · 4 评论 -
c++实现大数乘法
思路 第i位数乘第j位数,乘积是第i+j位数(从0开始) 如123*456 乘积各位数为 个位 3*6 十位 2*6 + 3*5 百位 2*5 + 1*6 + 3*4 千位 1*5 + 2*4 万位 1*4然后从后往前,取余更新。代码#include <stdio.h>#include <iostream>#include <vector>原创 2015-12-22 00:51:44 · 8459 阅读 · 0 评论 -
C++实现大数除法
题外话 大数除法无疑是大数操作里最麻烦的一项,写大数不实现除法无异于画龙无鳞。思路 最原始的,脑子最容易冒出来的思路,是一下一下的减,看能累计减多少次,最后的总次数就是结果,但这样的效率实在太慢。但我们可以一次性减去 除数的1,10,100,1000倍,只要它在当前倍数下比被除数小。 例如 1210 3 ,121大于300,我们直接剪去300,给结果加100,这样的话,减的次数会大原创 2015-12-25 16:09:56 · 11784 阅读 · 3 评论