题目大意:

从文件中输入P(1000<P<3100000),计算2^P−1的位数和最后500位数字(用十进制高精度数表示)

思路:

一道高精度练习题

其中位数是一个结论 位数=[P*log2]+1

然后就是高精度,因为作死的压位打了好久

 #include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#define inf 2139062143
#define ll long long
#define MAXN 6010
#define MOD 10000
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') f=-;ch=getchar();}
while(isdigit(ch)) {x=x*+ch-'';ch=getchar();}
return x*f;
}
int n;
struct bign
{
int len,num[];
bign(){len=;memset(num,,sizeof(num));}
void Print()
{
for(int i=;i>;i--)
if(i%==) printf("%02d\n%02d",num[i]/,num[i]%);
else if(i%==) printf("%04d\n",num[i]);
else printf("%04d",num[i]);
printf("%04d",num[]-);
}
};
bign mul(bign a,bign b)
{
bign res;int t;
//cout<<"a: ";a.Print();cout<<"b: ";b.Print();
for(int i=;i<=a.len;i++)
for(int j=;j<=b.len;j++)
{
t=a.num[i]*b.num[j];
if(i+j<=)
if(i+j<) res.num[i+j]+=t,res.num[i+j+]+=res.num[i+j]/MOD,res.num[i+j]%=MOD;
else res.num[i+j]+=t,res.num[i+j]%=MOD;
}
for(int i=;i<=;i++)
if(res.num[i]) res.len=i;
return res;
}
void q_pow()
{
bign ans,t;ans.num[]=,t.num[]=;
while(n)
{
if(n&) ans=mul(ans,t);
t=mul(t,t);
n>>=;
}
ans.Print();
}
int main()
{
n=read();
printf("%d\n",(int)(n*0.30103)+);
q_pow();
}

最新文章

  1. 如何在SpringBoot中使用JSP ?但强烈不推荐,果断改Themeleaf吧
  2. iOS开发——高级篇——远程音频、视频播放
  3. bootstrap源码分析----栅格系统
  4. Getting the Device GUID
  5. Linux加载DTS设备节点的过程(以高通8974平台为例)
  6. mysql数据库开发规范
  7. .net 学习路线感想
  8. 也谈BIO | NIO | AIO (Java版--转)
  9. 跟着ZHONGHuan学习设计模式--桥接模式
  10. C#采用的是“四舍六入五成双”、上取整、下取整
  11. LeetCode——Linked List Cycle II
  12. ASP.NET MVC中使用Unity进行依赖注入的三种方式
  13. 巧用css text-indent减小中文标点符号的占位大小
  14. HDU 3518 Boring counting
  15. 使用Travis CI自动部署博客到github pages和coding pages
  16. Nginx stream ssl
  17. MongoDB 和 NoSQL简介
  18. adb占用
  19. 论文笔记:目标检测算法(R-CNN,Fast R-CNN,Faster R-CNN,FPN,YOLOv1-v3)
  20. Jquery学习小计

热门文章

  1. (独孤九剑)--cURL
  2. 四角递推(CF Working out,动态规划递推)
  3. P1223 排队接水
  4. Sublime 添加右键快捷(其他软件同样方法)
  5. zabbix登录密码重置方法
  6. (一)U-Boot启动过程--详细版的完全分析
  7. type=&quot;timestamp&quot;与type=&quot;date&quot;区别
  8. HDU 1160 排序或者通过最短路两种方法解决
  9. [luoguP1095] 守望者的逃离(DP)
  10. Codeforces Round #232 (Div. 2) On Sum of Fractions