快速幂+求值

来源:互联网 发布:js 直接写 和 onload 编辑:程序博客网 时间:2024/06/16 04:19
数的快速幂,递归与非递归版,n^k的前三位,数学算。。#include<bits/stdc++.h>using namespace std;typedef long long int LL;int mod=1000;int f(int x,int k){if(k==0) return 1;    int res=1;    while(k)    {        if(k&1) res=res*x%mod;        x=x*x%mod;        k=k>>1;    }    return res;}LL dfs(int x,int k){    if(k==0) return 1;    int temp=dfs(x,k>>1)%mod;    if(k&1) return temp*temp*x%mod;    return temp*temp%mod;}int solve(int n,int k){return pow(10.0,k*log10(n)-(LL)(k*log10(n))+2);}int main(){    //int x=12345;    //printf("%lld %lld\n",12345*12345,x*x);    // ?_?    int t,kase=1;    scanf("%d", &t);    while(t--)    {        int n,k;        scanf("%d%d", &n,&k);        printf("Case %d: %d %03d\n",kase++,solve(n,k),dfs(n%mod,k)); //%03d坑点    }    return 0;}