UVA - 11029 Leading and Trailing
2013-10-18 14:56
393 查看
题意:求前三位,后三位,后三位我们可以用快速幂解决,至于前三位是这样来的,
因为n^k = 10^(log10(n^k))=10^(k*log10(n)),对这个数取整的话,小数部分再*100就是前三位了,显然前三位只受k*log10(n)小数部分的影响,最后再取整,还有后三位不够三位用0补
因为n^k = 10^(log10(n^k))=10^(k*log10(n)),对这个数取整的话,小数部分再*100就是前三位了,显然前三位只受k*log10(n)小数部分的影响,最后再取整,还有后三位不够三位用0补
#include <iostream> #include <cstdio> #include <cmath> using namespace std; int n,k; int Front(int n,int k){ double s = k*log10(n) - (int)(k*log10(n)); s = pow(10,s); return s*100; } int Rear(int n,int k){ if (!k) return 1; long long s = Rear(n, k/2); if (k % 2 == 1) s = s*s % 1000 * n % 1000; else s = s*s % 1000; return s; } int main(){ int t; scanf("%d",&t); while (t--){ scanf("%d%d",&n,&k); printf("%d...%03d\n",Front(n,k),Rear(n,k)); } return 0; }
相关文章推荐
- UVA 11029 - Leading and Trailing
- 【uva】11029 Leading and Trailing
- UVa 11029 Leading and Trailing (如何计算n^k的开头三位和末尾三位?)
- uva 11029 Leading and Trailing
- uva11029 - Leading and Trailing
- UVA 11029 Leading and Trailing(大数n^k的前x位高精度问题)(好题)
- UVA 11029 - Leading and Trailing
- uva_11029 Leading and Trailing 快速幂 数的n次方前几位
- UVa 11029 Leading and Trailing(log法求大数前3位)
- UVA - 11029 Leading and Trailing 快速幂和fmod
- UVA 11029 Leading and Trailing
- uva11029 - Leading and Trailing(头和尾)
- uva 11029 Leading and Trailing
- uva 11029 Leading and Trailing
- UVA-11029-Leading and Trailing-(快速幂,log10函数求大数首末数)
- uva 11029 - Leading and Trailing(快速幂)
- UVa 11029 Leading and Trailing
- UVA-11029 Leading and Trailing
- UVA 11029 Leading and Trailing
- UVA - 11029 Leading and Trailing