题目链接:戳我戳我

我们知道,  的最后一位必定不是0, 则  的位数与  相等。

那么如何来求  的位数呢?

为了不失一般性, 在此直接讨论任意数  的位数:

对于任意大于等于0的实数k, 有  的位数为   + 1(即k的向下取整再+1)

而   

所以位数就是   啦

log10是cmath里的函数直接用就行

代码:

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int a[2600];      //其实开两倍就够了
int r[2600];      //这个是乘法的结果数组void mul(int *a, int *b) //高精度乘法
{memset(r, 0, sizeof(r));for(int i = 0; i < 500; ++i){int before = 0;for(int j = 0; j < 500; ++j){r[i + j] += a[i] * b[j] + before;before = r[i + j] / 10;r[i + j] %= 10;}if(before)r[i + 500] += before;}
}void qp(int p) //高精度快速幂对500取模
{int b[2600];memset(b, 0, sizeof(b));b[0] = 2;while(p){if(p & 1){mul(a, b);for(int i = 0; i < 500; ++i)a[i] = r[i];}mul(b, b);for(int i = 0; i < 500; ++i)b[i] = r[i];p >>= 1;}
}int main()
{int p;cin>>p;int nima = (int)(p*log10(2)+1); //求位数nima(不要在意我帅气的变量名)cout<<nima<<endl;memset(a, 0, sizeof(a));a[0] = 1;qp(p);a[0]--;     //-1直接减就行喽int sum = 0;for(int i = 499; i>=0; --i){sum++;cout<<a[i];if(sum % 50 == 0)cout<<endl;}return 0;
}

洛谷oj P1045麦森数 高精度快速幂取模及位数求法相关推荐

  1. [NOIP2003普及组]麦森数(快速幂+高精度)

    [NOIP2003普及组]麦森数(快速幂+高精度) Description 形如2^P-1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2^P-1不一定也是素数.到1998 ...

  2. (快速幂算法+高精度)洛谷P1045 麦森数

    前言   故事的最后,让我们以一道十分经典的题目--<麦森数>来结尾.接受现实吧,总会有我们没准备过的高精度运算出现.我们固然可以提前把高精度的快速幂模板也准备好,但是总会有百密一疏的时候 ...

  3. P1045 麦森数 洛古

    1.位数运算 2.高精度 3.快速幂 完事

  4. [洛谷 OJ]P1015 回文数

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个十进制数56,将56加65(即把5656从右向左读),得到121是一个回文数. 又如:对于十进制数 ...

  5. 麦森数(洛谷P1045题题解,Java语言描述)

    题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...

  6. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)

    题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...

  7. 高精度:麦森数*(洛谷P1045)

    P1045 [NOIP2003 普及组] 麦森数 解析 看似只是正常的一个高精 然而 暗藏杀机 一开始随手那么一写 ... (即使用了快速幂)时间复杂度过于感人 后来我们发现: 第一问位数的计算不必真 ...

  8. 信息学奥赛一本通 1925:【03NOIP普及组】麦森数 | OpenJudge NOI 4.4 1708:麦森数 | 洛谷 P1045 [NOIP2003 普及组] 麦森数

    [题目链接] ybt 1925:[03NOIP普及组]麦森数 OpenJudge NOI 4.4 1708:麦森数 洛谷 P1045 [NOIP2003 普及组] 麦森数 [题目考点] 1. 高精度 ...

  9. 麦森数(洛谷-P1045)

    题目描述 形如 2^{P}-1 的素数称为麦森数,这时 P 一定也是个素数.但反过来不一定,即如果 P 是个素数, 2^{P}-1 不一定也是素数.到1998年底,人们已找到了37个麦森数.最大的一个 ...

最新文章

  1. Activity中KeyEvent的传递
  2. 4.Windows下安装ZooKeeper
  3. 【总结整理】关于IE6的兼容性
  4. spring集成kafka
  5. 2021年东港二中高考成绩查询,辽宁省东港二中2021届英语高考模拟试卷1(新课改原创2020版,供2021年课改省份考生使用)...
  6. 促进新一代人工智能产业发展三年行动计划_工信部新一代人工智能产业创新重点揭榜任务——中国联通智能化网络基础设施及开放平台启动会成功召开...
  7. 谷歌 Pixel 4 人像模式拍照算法揭秘
  8. (58)Verilog HDL事件或:or、,
  9. javascript实现下拉条联动_JavaScript gt;gt;gt; 003
  10. ES6——Map和WeakMap
  11. docker web程序本地化_Docker 容器化部署 Python 应用
  12. android开发学习——关于activity 和 fragment在toolbar上设置menu菜单
  13. 使用SerialPort 对象实现串口拨号器通信[下]
  14. python下载安装教程-一招解决:各种版本的Python下载安装教程
  15. python异常处理_Python爬虫入门(5):URLError异常处理
  16. 产品 观察体会微信界面心得(一)
  17. 强化学习(实践):多臂老虎机,动态规划,时序差分
  18. excel表格怎么换行?3个方法,你一定不知道第3个
  19. TestNG教程二:testNG常用测试类型
  20. ThinkPHP教程

热门文章

  1. Java课程学习十一:图片匹配游戏
  2. 多用户商城系统建站需要考虑的几个因素
  3. modelsim Error: (vlog-13067) Syntax error, unexpected non-printable character.
  4. VueJS实现模糊查询
  5. fcpx插件Volumetrix Mac关键帧快速渲染转场
  6. [深入研究4G/5G/6G专题-32]: URLLC-3-《中国移动面向 URLLC 场景的无线网络能力》解读-1-行业应用场景与技术指标要求
  7. [转帖].MegaRAID SAS 9361-8i 开箱 极简测试
  8. 计算机组装与维修作者闫从丰,计算机组装与维修英文参考文献 计算机组装与维修论文参考文献数量是多少...
  9. ex20 函数和文件
  10. 走进波分 -- 07.波分系统基本构成之光放