zoukankan      html  css  js  c++  java
  • LightOJ 1282

    Time Limit: 2000MS   Memory Limit: 32768KB   64bit IO Format: %lld & %llu

    Status

    Description

    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.

    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

    5

    123456 1

    123456 2

    2 31

    2 32

    29 8751919

    Sample Output

    Case 1: 123 456

    Case 2: 152 936

    Case 3: 214 648

    Case 4: 429 296

    Case 5: 665 669

    Source

    Problem Setter: Shamim Hafiz
    Special Thanks: Jane Alam Jan (Solution, Dataset)
    /**
              题意:求a的b次幂,结果的高三位和低三位是什么
              做法:快速幂 
    **/
    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<cmath>
    #include<algorithm>
    #define mod 1000
    using namespace std;
    int quickpow(int n, int k)
    {
        int res = 1;
        int base = n%mod;
        while(k)
        {
            if(k&1)
                res *= base;
            base *= base;
            res %= mod;
            base %= mod;
            k >>= 1;
        }
        return res;
    }
    int solve(int   a,int   b)
    {
              double s = b*log10((double)a) - (int)(b*log10((double)a));
        s = pow(10.0,s);
        return s*100;
    }
    int main()
    {
    #ifndef ONLINE_JUDGE
             freopen("in.txt","r",stdin);
    #endif // ONLINE_JUDGE
              int Case = 1;
              int T;
              scanf("%d",&T);
              while(T--)
              {
                        int  a,b;
                        scanf("%d %d",&a,&b);
                        int  res = quickpow(a,b);
                        int cet =pow(10, 2+fmod(b *(double)log10((double)a), 1));
                       printf("Case %d: %d %03d
    ",Case,cet,res);
                       Case++;
              }
              return 0;
    }
  • 相关阅读:
    flask虚拟环境
    db.Column
    flask_cors跨域请求
    app.config.from_object
    jquery链式原理.html
    swiper轮播
    jquery引用
    animate.html
    设置和获取html里面的内容.html
    jquery获取dom属性方法
  • 原文地址:https://www.cnblogs.com/chenyang920/p/4445561.html
Copyright © 2011-2022 走看看