题目链接:https://cn.vjudge.net/problem/HDU-6217

题意

已知:

\[\pi = \sum_{k=0}^{\infty }\frac{1}{16^{k}}(\frac{4}{8k+1}-\frac{2}{8k+4}-\frac{1}{8k+5}-\frac{1}{8k+6})
\]

求pi的16进制下小数点后第n位是多少。

n<=1e5

思路

要算pi的第n位,首先把pi向前移n位,则个位上就是要求的数。

但是我们很快发现难以计算这个个位数(乘法逆元可能不存在,精度也有问题)。

然而通过脑洞,我们可以去算第一位小数,然后乘以16取个位即可。

提交过程

AC 可惜场上没想出来

代码

#include <cstdio>
#include <cstring>
double powmod(int idx, int mod){
long long tmp=16, res=1;
for (int i=0; (1<<i)<=idx; i++){
if (idx&(1<<i)) res=(res*tmp)%mod;
tmp=(tmp*tmp)%mod;
}
return res/(double)mod;
} int solve(int n){
double res=0;
n--;
for (int i=0; i<=n; i++){
res+=4*powmod(n-i, 8*i+1)-2*powmod(n-i, 8*i+4)
-powmod(n-i, 8*i+5)-powmod(n-i, 8*i+6);
if (res<0) res+=1;
}
res*=16;
return ((int)res)%16;
} int main(void){
int T, n, kase=0;
char hex[20]="0123456789ABCDEF"; scanf("%d", &T);
while (T--){
scanf("%d", &n);
printf("Case #%d: %d %c\n", ++kase, n, hex[solve(n)]);
} return 0;
}
Time Memory Length Lang Submitted
4180ms 1204kB 725 G++ 2018-08-30 18:47:46

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. hdu 6217 A BBP Formula 公式题

    题意 已知公式:$\pi=\sum_{k=0}^{\infty}\left[\frac{1}{16^{k}}\left(\frac{4}{8 k+1}-\frac{2}{8 k+4}-\frac{1} ...

  3. 【HDOJ6217】BBP Formula(公式)

    题意:给定一个无穷项的分式,它的和等于π,问π的十六进制表示的小数点后第n位是多少 1 ≤ n ≤ 100000 思路:From https://blog.csdn.net/meopass/artic ...

  4. UVALive-8201-BBP Formula

    8201-BBP Formula Time limit: 3.000 seconds In 1995, Simon Plouffe discovered a special summation sty ...

  5. ACM-ICPC 2017 Asia Shenyang Solution

    A: BBP Formula https://www.cnblogs.com/LzyRapx/p/7802790.html #include <bits/stdc++.h> using n ...

  6. hdu 5308 (2015多校第二场第9题)脑洞模拟题,无语

    题目链接:http://acm.hdu.edu.cn/listproblem.php?vol=44 题意:给你n个n,如果能在n-1次运算之后(加减乘除)结果为24的输出n-1次运算的过程,如果不能输 ...

  7. HDU 2139 Calculate the formula

    http://acm.hdu.edu.cn/showproblem.php?pid=2139 Problem Description You just need to calculate the su ...

  8. hdu 5139 Formula

    http://acm.hdu.edu.cn/showproblem.php?pid=5139 思路:这道题要先找规律,f(n)=n!*(n-1)!*(n-2)!.....1!;  不能直接打表,而是离 ...

  9. HDOJ(HDU) 2139 Calculate the formula(水题,又一个用JavaAC不了的题目)

    Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 看到这个时间,我懵逼了... 果然,J ...

随机推荐

  1. nutz中实现登录验证

    一.nutz是什么 nutz是一个轻便的web端开发框架.主页如下:http://www.nutzam.com/core/nutz_preface.html 二.session简单介绍 大家都知道ht ...

  2. AOJ 0121 Seven Puzzle {广度优先搜索}(*)

    原题 题意 题意是有一个输入,比方: 1 0 2 3 4 5 6 7 摆成例如以下形状: 1 0 2 3 4 5 6 7 0表示空格.其它数字能够移动到0的位置.最后须要到例如以下形状: 0 1 2 ...

  3. 支付宝钱包手势password破解实战(root过的手机可直接绕过手势password)

    /* 本文章由 莫灰灰 编写,转载请注明出处. 作者:莫灰灰    邮箱: minzhenfei@163.com */ 背景 随着移动互联网的普及以及手机屏幕越做越大等特点,在移动设备上购物.消费已是 ...

  4. Linux GDB程序调试工具使用简单介绍

    GDB概述 GDB是GNU开源组织公布的一个强大的UNIX下的程序调试工具.也许,各位比較喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但假设你是在UNIX平台下做软件,你会发现GDB这个调试 ...

  5. php简单的连接数据库

    <?php $conn=@mysql_connect("localhost","root","") or die ("no& ...

  6. encodeURIComponent编码java后台解码出现乱码问题

    问题:JavaScript请求后台带着name参数,有中文进行编码:url?name=" + encodeURIComponent(name):java后台直接使用name或者name=ja ...

  7. pythonOCC版 瓶子代码

    #!/usr/bin/env python # -*- coding:utf-8 -*- ##Copyright 2009-2015 Thomas Paviot (tpaviot@gmail.com) ...

  8. week1 notebook1

    初识Python 一.python介绍 - 解释器: cpython(默认使用) ipython(shell) jpython(java) ironpython rubypython - 编码: as ...

  9. hihoCoder挑战赛31

    #1595 : Numbers 时间限制:8000ms 单点时限:1000ms 内存限制:256MB 描述 给定n个整数常数c[1], c[2], ..., c[n]和一个整数k.现在需要给2k个整数 ...

  10. RAP开发入门-布局管理

    布局类继承关系 FillLayout  new FillLayout(SWT.VERTICAL/HORIZONTAL)设置竖直/水平填充 RowLayout wrap折行显示.pack自适应布局(布局 ...