【快速幂 && 公式推导】LightOJ
来源:互联网 发布:知乎手机端发表文章 编辑:程序博客网 时间:2024/05/22 03:18
Problem Description
输入两个数n, k问你n^k次方前三位数是多少,后三位数是多少。
思路:
后三位快速幂%1000就好了。
核心是求前三位 n^k = 10^(a + b) 其中a为整数,b为小数。前三位就是 10^b * 100。所以我们得求出b, log(10)n^k = log(10)10^(a+b) -> k*log(10)^n = a + b, 因为b是小数,b = (a+b)%1 = (k*log(10)^n)%1。前三位就知道是多少了
#include<bits/stdc++.h>using namespace std;int Pow(long long n, long long k, int mod)//快速幂{ long long sum = 1, x = n; while(k) { if(k&1) sum = (sum * x) % mod; x = (x * x) % mod; k >>= 1; } return sum;}int main(){ int T, cas = 1; long long n, k; scanf("%d", &T); while(T--) { scanf("%lld %lld", &n, &k); int ans1 = pow(10, 2.0 + fmod(1.0*k*log10(n), 1.0));//10^b * 100 int ans2 = Pow(n, k, 1000); printf("Case %d: %d %03d\n", cas++, ans1, ans2); }}
阅读全文
0 0
- 【快速幂 && 公式推导】LightOJ
- 【数论 && 公式推导】LightOJ
- hdu 4565 公式推导+矩阵快速幂
- LightOJ 1070 Algebraic Problem (推导+矩阵快速幂)
- bnu 34985 Elegant String(矩阵快速幂+dp推导公式)
- 公式推导
- 快速幂 LightOJ 1282
- codeforces #259 DIV2 C题 Little Pony and Expected Maximum(容斥+快速幂+公式推导)
- lightOj 1132(矩阵快速幂)
- LightOj 1332 矩阵快速幂
- lightoj 1006 矩阵快速幂
- LightOj 1006(矩阵快速幂)
- lightoj 1052 矩阵快速幂
- LightOJ-1052-矩阵快速幂
- Catalan数公式推导
- 平方和公式推导
- 推导坐标旋转公式
- 点乘公式推导
- make的-j命令(加速Linux程序编译)
- C++项目中的各种坑【2017.10.30】
- PPPoE的验证方法
- python中items()和iteritems()函数的用法
- 关于微信公众平台本地测试ip如何加入IP白名单
- 【快速幂 && 公式推导】LightOJ
- PHP常用函数总结(180多个)
- maven简介
- php怎样获取用户的所在城市
- javaweb获取用户真实ip
- HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试
- IP和端口间的联系
- 设计模式_迭代子模式(19)
- hive一些基本操作