计算2的N次方【高精度算法】

本文介绍了一种使用C++进行高精度整数乘法的方法,重点在于避免int类型的溢出问题。通过两层循环实现乘法,并进行进位处理。代码中使用了unsigned long long int类型,但指出对于非常大的数,可能需要更高级的高精度库。文章还提及了输入输出处理和优化技巧。
摘要由CSDN通过智能技术生成

这道题某些人一看,诶,这不挺简单的吗,但是请注意他的样例

已经超过了十万,TM这还是int能够达到的极限吗?

所以我么不得不用处最后的神器——递归,啊呸,高精度

其实这道题“特别”简单,因为其实只需要输入整数n,不需要输入char字符数组(这道题有BUG),如果真的要的话,那还是老套路,整数N我怕他们会挑刺,这里就给大家科普一下

unsigned long long int 类型,占得字节数只有8(64位),数值范围是(0~18446744073709551615),也就是0~2的64次方-1。

然后后面的思路就很简单了,我就不详细讲了,那些白嫖怪拿走吧

额。。。。文章质量不佳,我也是挺崩溃的,那我还是详细讲一下吧。

第一步输入,也可以用cin,但是scanf的准度更高,而且还需要用ulld来输入,不然的话你输入的长度太高,当场就崩掉

第二步计算,通过再也熟悉不过的两重循环嵌套,但是不需要数组的循环计算,直接等于乘以二,然后简单的进位

第三步导0,这里的导0是专门用于高精度乘法的导0,大整数加法不通用

第四步输出

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值