题意:求nk的前三位和后三位。

分析:

1、后三位快速幂取模,注意不足三位补前导零。

补前导零:假如nk为1234005,快速幂取模后,得到的数是5,因此输出要补前导零。

2、前三位:

令n=10a,则nk=10ak=10x+y,x为ak的整数部分,y为ak的小数部分。

eg:n=19,k=4,则nk=130321,

a=log10(n)=1.2787536009528289615363334757569

ak=5.1150144038113158461453339030277,

因此,x=5,y=0.1150144038113158461453339030277,

10y=1.3032099999999999999999999999999,因此要获得前三位只需要10y*100下取整即可。

3、注意:

log(double x)---底数为e

log10(double x)---底数为10

log2(double x)---底数为2

#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int POW_MOD(int n, int k, int MOD){
if(k == 0) return 1 % MOD;
int tmp = POW_MOD(n, k >> 1, MOD);
long long ans = (tmp * tmp) % MOD;
if(k & 1) (ans *= (n % MOD)) %= MOD;
return ans;
}
int main(){
int T;
scanf("%d", &T);
int kase = 0;
while(T--){
int n, k;
scanf("%d%d", &n, &k);
int x = (int)(pow(10.0, fmod(log10(n * 1.0) * k, (int)(log10(n * 1.0) * k))) * 100);
int y = POW_MOD(n, k, 1000);
printf("Case %d: %d %03d\n", ++kase, x, y);
}
return 0;
}

  

LightOJ - 1282 Leading and Trailing (数论)的更多相关文章

  1. LightOJ 1282 Leading and Trailing 数论

    题目大意:求n^k的前三位数 和 后三位数. 题目思路:后三位数直接用快速幂取模就行了,前三位则有些小技巧: 对任意正数都有n=10^T(T可为小数),设T=x+y,则n=10^(x+y)=10^x* ...

  2. LightOJ 1282 Leading and Trailing (快数幂 + 数学)

    http://lightoj.com/volume_showproblem.php?problem=1282 Leading and Trailing Time Limit:2000MS     Me ...

  3. UVA 11029 || Lightoj 1282 Leading and Trailing 数学

    Leading and Trailing You are given two integers: n and k, your task is to find the most significant ...

  4. LightOj 1282 Leading and Trailing

    求n^k的前三位数字和后三位数字. 范围: n (2 ≤ n < 231) and k (1 ≤ k ≤ 107). 前三位: 设 n^k = x ---> lg(n^k)=lg(x) - ...

  5. LightOJ 1282 Leading and Trailing (数学)

    题意:求 n^k 的前三位和后三位. 析:后三位,很简单就是快速幂,然后取模1000,注意要补0不全的话,对于前三位,先取10的对数,然后整数部分就是10000....,不用要,只要小数部分就好,然后 ...

  6. LightOJ - 1282 - Leading and Trailing(数学技巧,快速幂取余)

    链接: https://vjudge.net/problem/LightOJ-1282 题意: You are given two integers: n and k, your task is to ...

  7. 1282 - Leading and Trailing 求n^k的前三位和后三位。

    1282 - Leading and Trailing You are given two integers: n and k, your task is to find the most signi ...

  8. 1282 - Leading and Trailing ---LightOj1282(快速幂 + 数学)

    http://lightoj.com/volume_showproblem.php?problem=1282 题目大意: 求n的k次方的前三位和后三位数然后输出 后三位是用快速幂做的,我刚开始还是不会 ...

  9. light OJ 1282 - Leading and Trailing 数学 || double技巧

    http://lightoj.com/volume_showproblem.php?problem=1282 #include <cstdio> #include <cstdlib& ...

随机推荐

  1. DatePicker和DataPickerDialog以及AutoCompleteTextView的基本使用方法

    1.DatePicker和DatePickerDialog的基本使用方法: main.xml: <?xml version="1.0" encoding="utf- ...

  2. H.264 SODB RBSP EBSP的区别

    SODB(String of Data Bits,数据比特串): 最原始,未经过处理的编码数据 RBSP(Raw Byte Sequence Payload,原始字节序列载荷): 在SODB的后面填加 ...

  3. 33 第一个只出现一次的字符+ASCII码

    题目描述 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置 思路:使用一个hashmap遍历一遍,统计每个字符出现的次数,然后再统 ...

  4. 微信小程序request请求实例,网络请求。

    最近微信小程序开始开放测试了,小程序提供了很多api,极大的方便了开发者,其中网络请求api是wx.request(object),这是小程序与开发者的服务器实现数据交互的一个很重要的api. 官方参 ...

  5. hdfs的bug纪录, Unexpected block state

      今早遇到一个bug,提交 spark job 失败.说 hdfs 在 safe mode状态,不允许创建和删除文件. 然后发现 hdfs 的日志文件不断滚动,几乎每秒钟100M的速度打日志,当时没 ...

  6. IdentityServer4专题之一:OAuth2.0介绍

    1.OAuth 2.0授权方式介绍: OAuth 2.0 的标准是 RFC 6749 文件.该文件先解释了 OAuth 是什么: OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有 ...

  7. 利用Docker构建开发环境

    最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境,感觉生活在PAAS时代的程序员真是幸福,本文会简要介绍下Docker是什么,如何利用Docker来搭建自己的开发环 ...

  8. POJ 3669 Meteor Shower BFS求最小时间

    Meteor Shower Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31358   Accepted: 8064 De ...

  9. python-python基础3

    本章内容: 函数 递归 高阶函数 一.函数 一个函数一般完成一项特定的功能 函数使用     函数需要先定义     使用函数,调用

  10. BusyBox 添加 自定义命令\小程序 (applet)

    背景 在做嵌入式开的时候,busybox无疑是非常好用的命令集,所以很多时候都喜欢把busybox移植到我们的系统里面. 说明 添加一个很简单的命令--hello_busybox,输出"He ...