题目链接

求PI的十六进制表示的小数点后第n位是多少,看其他博主说要求第n位,只需要把16进制下的小数点挪到第n-1位和第n位之间,即*16^(n-1),然后去掉整数部分,小数部分再乘16得到的整数部分即是第n位

公式分解详解https://blog.csdn.net/meopass/article/details/78327614

#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;char change(int ans){if(ans>=0&&ans<=9)return ans+'0';return ans+55;  //十六进制转换
}ll quick_pow(ll a,ll b,ll mod){  //快速模幂ll ans=1;while(b){if(b&1)ans=ans*a%mod;b>>=1;a=a*a%mod;}return ans;
}double bbp(int n,ll k,ll b){  //bbp公式double res=0;for(int i=0;i<=n;i++){res+=(quick_pow(16,n-i,8*i+b)*1.0/(8*i+b));  //保证高精度}for(int i=n+1;i<=n+1+1000;i++){res+=(pow(16,n-i)*1.0/(8*i+b));  //直接求幂 }return k*res;
}int main(){int t,n,cnt;cnt=0;scanf("%d",&t);while(t--){cnt++;scanf("%d",&n);n--;double ans=0;ans=bbp(n,4,1)-bbp(n,2,4)-bbp(n,1,5)-bbp(n,1,6);  //小数部分ans=ans-int(ans);if(ans<0)ans+=1;ans*=16;  //整数部分char result=change(ans);printf("Case #%d: %d %c\n",cnt,n+1,result);}return 0;
}

hdu 6217 BBP Formula相关推荐

  1. HDU 6217 BBP Formula (数学)

    题目链接: HDU 7217 题意: 题目给你可以计算 \(π\) 的公式: \(\pi = \sum_{k=0}^{\infty}[\frac{1}{16^k}(\frac{4}{8k+1})-(\ ...

  2. BBP算法计算圆周率(BBP Formula HDU - 6217)

    概述 BBP算法求圆周率π,它的优点在于可以直接求出圆周率的某一位d开始的一串数字,而不依赖于第d位之前的数字,传统的算法需要一位位地求.BBP算法节省了一大部分时间和内存,但BBP所求的圆周率是用1 ...

  3. 【BBP 算法】HDU 6217

    1.最近看到有学弟在说BBP算法,然后就写一下这个东东. 2.BBP其实是三个人,然后这个算法是干嘛的嘞,其实是快速的求某些无理数的第n为数字或者第n位以后的一串数字.比如求PI,log2,log3等 ...

  4. 【HDU 6217 2017ACM/ICPC亚洲区沈阳站】BBP Formula

    BBP算法的一个模板 #include <cstdio> #include<iostream> using namespace std; typedef long long l ...

  5. hdu 6217 A BBP Formula 公式题

    https://zh.wikipedia.org/wiki/%E8%B4%9D%E5%88%A9-%E6%B3%A2%E5%B0%94%E6%B8%A9-%E6%99%AE%E5%8A%B3%E5%A ...

  6. HDU6217 BBP Formula

    简略题意:问π的十六进制表示的小数点后第n位是多少. 关于BBP公式详见WIKI百科 这个公式的作用就是计算十六进制下的小数点后第n位,而不必计算前n-1项. π=∑∞k=0[116k(48k+1)− ...

  7. BBP Formula HDU6217

    大致题意是计算Π的小数点后第n位的值. 这道题最主要的地方是bbp公式 圆周率每乘以一个16,就相当于把十六进制的圆周率小数点向右移动一位,移动b位就是乘以16^b,而BBP公式给出的级数,可以分解成 ...

  8. hdu6217 - BBP Formula

    链接 点击跳转 题解 先乘以16n−116^{n-1}16n−1 现在就是要计算小数后面第一位 假设16n−k=t(8k+1)+r16^{n-k} = t(8k+1) + r16n−k=t(8k+1) ...

  9. C# BBP公式计算π

    BBP公式可以直接计算出小数点后d位的数,不依赖第d位之前的数字,计算结果为16进制. BBP公式 : 核心公式 π=∑k=0∞{116k(48k−1−28k+4−18k+5−18k+6)}(1)\p ...

最新文章

  1. 苹果被曝重大系统漏洞:新款MacBook、iPhone 12、iPad Pro统统波及!root权限秒获取,隐私文件随意看...
  2. 基于Pytorch再次解读GoogLeNet现代卷积神经网络
  3. HDU 4946 Area of Mushroom 凸包
  4. angular 指令
  5. python中index函数_详解python中的index函数用法
  6. [网络安全提高篇] 一〇四.网络渗透靶场Oracle+phpStudy本地搭建万字详解(SQL注入、XSS攻击、文件上传漏洞)
  7. 浅谈最小生成树的算法思路(一)Prim算法
  8. VS2005 .vs. Orcas
  9. 【python】os模块 递归删除文件夹所有文件 --笔记
  10. C++之指针探究(十):this指针
  11. npm设置仓库register
  12. h5页面如何切图_HTML5自助切图
  13. hdmi接口有什么用_当贝投影仪HDMI(ARC)接口是什么意思?
  14. 单相全桥逆变电路MATLAB仿真,原理图设计,单相全桥逆变器设计资料,ti的参考,可用做光伏并网逆变器
  15. 基于Arduino的密码+指纹智能锁(LCD1602显示器)
  16. 网页浏览flash时不停黑屏
  17. 冶金物理化学复习 --- 典型熔渣模型
  18. 第五章 执行计划详解
  19. PHP与ECMP,2019 NECMP东北音乐产业发展论坛在沈举行
  20. Linux系统信息收集

热门文章

  1. 模拟电路3(三极管及其基本放大原理)
  2. 美国计算机工程专业,2018年美国大学本科计算机工程专业Top10
  3. 由ThinkServer RQ940死机到系统无法引导带来的感想
  4. 【钟表识别】基于计算机视觉实现钟表时间识别含Matlab源码
  5. 【智能制造】见识一下某航空企业的智能制造技术架构!
  6. Victoria的舞会2——图的连通性及连通分量
  7. 广告动画 android,age动漫官方网软件app-AGE动漫无广告纯净版下载v1.4安卓版-西西软件下载...
  8. 第一个panda3d C++程序
  9. 考研作文重点框架、句子、词汇总结
  10. 【转载】爸妈,求你们不要这么懂事