LightOJ1282

题目大意:

  给出 n 和 k,请你求出 n^k 次方的前三位和后三位。

解题思路:

  后三位用快速幂,不加赘述。

  求前三位的方法:

AC代码:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cmath>
 4 
 5 using namespace std;
 6 typedef long long ll;
 7 
 8 int Fase_Power(ll a,int m){
 9     int ret=1;
10     a%=1000;
11     while(m){
12         if(m&1) ret=ret*a%1000;
13         m>>=1;
14         a=a*a%1000;
15     }
16     return ret;
17 }
18 int main()
19 {
20     ll n;
21     int T,k;
22     scanf("%d",&T);
23     for(int t=1;t<=T;t++){
24         scanf("%lld%d",&n,&k);
25         printf("Case %d:",t);
26         double x=fmod(fmod(log10(n),1.0)*(double)k,1.0);//用fmod()取浮点数的小数部分。
27         double ans=pow(10.0,x);
28         ans*=100.0;
29         printf(" %d %03d
",(int)ans,Fase_Power(n,k));  //注意后三位有前导0的情况。
30     }
31     return 0;
32 }
“这些年我一直提醒自己一件事情,千万不要自己感动自己。大部分人看似的努力,不过是愚蠢导致的。什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。人难免天生有自怜的情绪,唯有时刻保持清醒,才能看清真正的价值在哪里。”
原文地址:https://www.cnblogs.com/Blogggggg/p/7706324.html