zoukankan      html  css  js  c++  java
  • UVA

    UVA - 11029
    难点是求前3位
    你看,一个数可以拆成,比如123456,可以拆成100000*1.23456,那我把小数部分求出来,再*100.0,再下取整就可以了。设x=log10(n^k),令整数部分为a,小数部分为b,比如log10(123456)=5.09151,那么a=5,b=0.09151,10^b=1.23456

    #include <iostream>
    #include <cstdio>
    #include <queue>
    #include <algorithm>
    #include <cmath>
    #include <cstring>
    #define inf 2147483647
    #define N 1000010
    #define p(a) putchar(a)
    #define For(i,a,b) for(long long i=a;i<=b;++i)
    
    using namespace std;
    long long T;
    long long n,k,m=1000,temp,cnt;
    long long ans1,ans2;
    double t;
    void in(long long &x){
        long long y=1;char c=getchar();x=0;
        while(c<'0'||c>'9'){if(c=='-')y=-1;c=getchar();}
        while(c<='9'&&c>='0'){ x=(x<<1)+(x<<3)+c-'0';c=getchar();}
        x*=y;
    }
    void o(long long x){
        if(x<0){p('-');x=-x;}
        if(x>9)o(x/10);
        p(x%10+'0');
    }
    
    long long ksm(long long a,long long b){
        long long r=1;
        while(b>0){
            if(b&1)
                r=r*a%m;
            a=a*a%m;
            b>>=1;
        }
        return r;
    }
    
    int main(){
        in(T);
        while(T--){
            in(n);in(k);
            ans2=ksm(n,k);
            temp=ans2;
            t=(double)k*log10(n);
            ans1=floor(pow(10.0,(t-(long long)t))*100.0);
            printf("%lld...%03lld
    ",ans1,ans2);
        }
        return 0;
    }
  • 相关阅读:
    docker使用
    接口自动化python3+requests+pytest/unitest
    Django--日常操作
    Redis
    散碎
    Django-- 类视图 Mixin 扩展类
    Django--类视图
    Django--响应
    python高级--正则表达式
    python-数据类型-字符串--常用操作
  • 原文地址:https://www.cnblogs.com/war1111/p/11288961.html
Copyright © 2011-2022 走看看