Light-oj 1282 - Leading and Trailing
2016-08-23 21:27
507 查看
1282 - Leading and Trailing
You are given two integers: n and k, your task is to find the most significant three digits, and least significant three digits of nk.
Each case starts with a line containing two integers: n (2 ≤ n < 231) and k (1 ≤ k ≤ 107).
这个的数学思想就好玩了后几个都会求至于前几个其实我们只要找到(10)^(2+p) 直接来代表前三个数就好了后面的小数直接舍去就行了
至于怎么求神奇的p=log10(n)先求出来原来那个数是10的多少次方然后p*k就是现在
想让你求的多少次方了再后面就是直接舍去整数求10(p+2)就好了
PDF (English) | Statistics | Forum |
Time Limit: 2 second(s) | Memory Limit: 32 MB |
Input
Input starts with an integer T (≤ 1000), denoting the number of test cases.Each case starts with a line containing two integers: n (2 ≤ n < 231) and k (1 ≤ k ≤ 107).
Output
For each case, print the case number and the three leading digits (most significant) and three trailing digits (least significant). You can assume that the input is given such that nk contains at least six digits.Sample Input | Output for Sample Input |
5 123456 1 123456 2 2 31 2 32 29 8751919 | Case 1: 123 456 Case 2: 152 936 Case 3: 214 648 Case 4: 429 296 Case 5: 665 669 |
至于怎么求神奇的p=log10(n)先求出来原来那个数是10的多少次方然后p*k就是现在
想让你求的多少次方了再后面就是直接舍去整数求10(p+2)就好了
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <queue> #include <stack> #include <cmath> using namespace std; typedef long long LL; LL Qpow(int n,int m){ LL r=1; LL base=n; while(m){ if(m&1){ r=(r*base)%1000; } base=base*base%1000; m>>=1; } return r; } int main(){ int T; scanf("%d",&T); int t=1; while(T--){ LL n; LL k; scanf("%lld %lld",&n,&k); printf("Case %d: ",t++); double lp=log10(n); lp=lp*(double)k; LL kp=(int)lp; lp=lp-kp; int m = pow( 10.0, lp+2.0); printf("%03d ",m); LL x=Qpow(n,k); printf("%03d\n",x); } return 0; }
相关文章推荐
- E - Leading and Trailing Light oj 1282
- Light-oj-1282 Leading and Trailing(数学取位)
- 【Light-oj】-1282 - Leading and Trailing(数论,快速幂,log,好)
- lightoj 1282 - Leading and Trailing 【数学】
- 快速幂 LightOJ 1282 - Leading and Trailing
- Light OJ 1282(B)——Leading and Trailing
- lightoj-1282-Leading and Trailing【快速幂】(两个数学函数的使用)
- Leading and Trailing LightOJ - 1282(快速幂)
- Lightoj1282(HDOJ1060) - Leading and Trailing
- light oj-1282 Leading and Trailing
- LightOJ - 1282 Leading and Trailing
- lightoj1282 - Leading and Trailing
- LightOJ 1282 Leading and Trailing(n^k的高三位和低三位)
- 1282 - Leading and Trailing
- 【LightOJ1282】Leading and Trailing(数论)
- [LightOJ1282]Leading and Trailing
- 【LightOJ1282】Leading and Trailing(数论)
- LightOJ1282_Leading and Trailing _对数求前三位数&快速幂
- LightOJ1282 Leading and Trailing
- LIGHToj 1282 - Leading and Trailing 【对数+快速幂取模】