uva11029 - Leading and Trailing n^k保留前三位

Qt C++ 串口调试助手 1. **串口配置**:支持自动检测可用串口,可配置波特率(9600~921600)、数据位(5~8)、校验位(无/奇/偶/标记/空格)、停止位(1/1.5/2)。- HEX 模式发送时,输入格式需为十六进制字符(0-9、A-F),可带空格(如 `01 A3 FF`)或不带空格(如 `01A3FF`)。// 发送模式:true=HEX,false=ASCII。// 字符串转HEX字节数组。ui->parity->addItems({"无", "奇校验", "偶校验", "标记校验", "空格校验"}); 阅读详情

Problem C

Leading and Trailing

Time limit: 2 seconds

 

Apart from the novice programmers, all others know that you can’t exactly represent numbers raised to some high power. For example, the C functionpow(125456, 455) can be represented in double data type format, but you won’t get all the digits of the result. However we can get at least some satisfaction if we could know few of the leading and trailing digits. This is the requirement of this problem.

 

Input

 

The first line of input will be an integer T<1001, where T represents the number of test cases. Each of the next T lines contains two positive integers,n and k. n will fit in 32 bit integer andk will be less than 10000001.

 

Output

 

For each line of input there will be one line of output. It will be of the format LLL…TTT, where LLL represents the first three digits ofn^k and TTT represents the last three digits of n^k. You are assured thatn^k will contain at least 6 digits.

 

 

Sample Input

Output for Sample Input

2

123456 1

123456 2

123...456

152...936


  这道题后三位快速幂取模就行了,但是前三位怎么做是个难点。

  n^k=10^(logn^k),设x是logn^k的整数部分,y是logn^k的小数部分,那么n^k=10^(x+y)=10^x * 10^y。由于10^x只改变小数点的位数,对数的值是不影响的。0<=y<1,所以1<=10^y<10,要保留3位,所以最后再乘以100就行了。

  这里有个新函数咯,fmod(a,b),就是a对b取模余下的包括小数部分,a,b都是浮点型,所以fmod(k*log10(n),1)就是y。

 

#include<cstring>
#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<queue>
#define INF 0x3f3f3f3f
using namespace std;
long long bigpow(long long x,long long n,int M){
    long long ret=1,t=x%M;
    while(n){
        if(n&1) ret=ret*t%M;
        t=t*t%M;
        n>>=1;
    }
    return ret;
}
int main(){
    freopen("in.txt","r",stdin);
    int T;
    scanf("%d",&T);
    while(T--){
        int N,K,left,right;
        scanf("%d%d",&N,&K);
        left=100*pow(10,fmod(K*log10(N),1));
        right=bigpow(N,K,1000);
        printf("%d...%03d\n",left,right);
    }
    return 0;
}



【QGIS入门实战精品教程】1.2:QGIS与ArcGIS的区别和联系 以下是GISGeography官方给出的两者之间的27点比较(译): 官方网址:https://gisgeography.com/qgis-arcgis-differences/ 1.QGIS容纳更多的数据格式 ArcGIS没有支持所有的数据格式,毫无疑问,QGIS在处理各种类型的数据时非常顺手,QGIS在数据格式方面是个多面手,在使用数据方面是它的长处。 QGIS使用GDAL/OGR库来读取和写入地理信息数据格式,支持超过70种矢量格式。QGIS一开始就是为了与PostGIS协作而诞生的,而支持的名单. 阅读详情

相关推荐

双向可控硅控制后续篇:过零检测电路、丢波、斩波、定时

双向可控硅功率控制技巧,掌握AC负载的控温控速等。

qq_42289734的博客 3万+

uva 11029 - Leading and Trailing(快速幂)

题目链接:uva 11029 - Leading and Trailing 题目大意:给出一个n和k求n^k的前三位数和后三位数。 解题思路:后三为数可以用分治的方法(快速幂)去做,可是前三位数就比较麻烦了,看了别人的题解. n^k = 10 ^ (k * log10(n)),所以可以将多余的位数移到小数点后面然后舍弃掉,只保留前三位,pow(10, 2 + fmod(k * log...

445822357 189

2024东南大学533复试C++程序设计笔试真题精讲

【东南553复试C++】2024东南大学533复试C++程序设计笔试真题精讲

转遍世界 3414

uva 11029

题意:计算n^k的前三位和后三位。 题解:后三位可以用快速幂取模得到,前三位计算时 n^k = 10 ^ (k * log10 n)。那么计算10 ^ (k * log10 n)的前三位就是10 ^ (2 + fmod(k * log10 n, 1)),例如10^3.5就是10^3 * 10^0.5,10^3决定10^0.5小数点后移3位,因此10^(k * log10 n)的前三位一定是k *

俯瞰风景 924

5分钟搞懂深度学习如何革新声源定位:从GCC-PHAT到DNN的实战对比

本文深入对比了深度学习与传统GCC-PHAT方法在声源定位领域的实战表现。通过具体实验数据,展示了DNN模型在强混响、低信噪比等复杂场景下,如何实现定位准确率的显著提升,并探讨了其数据驱动范式带来的鲁棒性优势与工程部署挑战。

3a9bq4r8t2y的博客 223

XPe开发初体验(一)XPe概述

XP Embedded是微软Windows Embedded产品线中非常重要的一环,不过比起大名鼎鼎的Windows Embedded CE,XPe显得过于低调了。在接下来的一段时间里,我希望能够用六篇的篇幅来描述一下XPe的整个开发过程。这个系列文章主要是针对有Windows编程经验,但是没有嵌入式开发经验的开发者,提供一些概念和开发过程的初步介绍。XP Embedded是一个基于Windo

aawolf = new Mobile.MVP 1万+

uva11029 - Leading and Trailing(头和尾)

求前缀和后缀(分别三位) 后缀容易求,只是取模求幂。。。。每次乘方后都取最后三位, 至于前缀,以前做过类似的题目,,,对于n^k来说,肯定可以用科学计数法来表示,由于太大我们无法存储,而我们也不需要知道它有多大,我们只是要3位, 所以,,,只需要求出小数部分,,指数部分用log求出来,去除整数部分,求10的pow(),,得到的即科学计数法的小数部分, 表达式:P = k*log10(n)

稻草人 1041

基于计算机视觉的无人便利店技术:从算法到部署的系统化实战指南

摘要:本文系统介绍了基于计算机视觉的无人便利店技术方案,提出"商品检测-跟踪-动作识别-防损-结算"五段式流水线架构。详细阐述了YOLOv8-Seg商品检测、OC-Sort多目标跟踪、3D-CNN+ST-GCN动作识别等核心算法实现,并完成NVIDIA Jetson Xavier NX边缘端的优化部署。通过TensorRT量化、DeepStream加速等技术手段,系统在保持94.7%动作识别准确率的同时,将漏单率降至0.8%,单店云端算力成本较行业平均降低84%。所有代码已开源,可直接应

博客 624

UVA - 11029 - Leading and Trailing (快速幂+公式变形)

题目传送: UVA - 11029 思路:后三位可以直接快速幂取模,然后前三位可以有两种做法,一个是利用double,一个是利用公式法,具体看代码吧 注意,后三位不足三位要补0,即用%03d AC代码①: #include #include #include #include #include #include #include #include #

Never say never 1016

基于Python的京东商品价格监控与降价提醒系统设计与实现

本文详细介绍了如何使用Python构建一个完整的京东商品价格监控与降价提醒系统。系统通过爬虫技术实时抓取京东商品价格信息,结合数据存储与分析,实现价格波动监控和智能降价提醒功能。文章涵盖了系统设计、技术选型、代码实现以及部署方案,为电子商务价格监控领域提供了一个实用的解决方案。关键词:Python爬虫、京东API、价格监控、降价提醒、自动化。

2201_76125261的博客 404

华为OD机试 - 第k个排列 - 全排列递归(Python/JS/C/C++ 2025 C卷 100分)

给定参数n,从1到n会有n个整数:1,2,3,…,n,这n个数字共有n!按大小顺序升序列出所有排列的情况,并一一标记当n=3时,所有排列如下“123”,“132,“213”,“231”,“312”,“321”输入两行,第一行为n,第二行为k,给定n的范围是[1,9],给定k的范围是[1,n!排列为“12”和“21”,第2个是“21”。给定n和k,返回第k个排列。输出排在第k位置的数字。只有一个排列,直接返回。

学Java,找哪吒 983

uva11029(幂取模)

题意:给出n,k;求n的k次方的前三位和后三位: 思路: 后三位可以用快速幂取模得到,前三位计算时 n^k = 10 ^ (k * log10 n)。那么计算10 ^ (k * log10 n)的前三位就是10 ^ (2 + fmod(k * log10 n, 1)),例如10^3.5就是10^3 * 10^0.5,10^3决定10^0.5小数点后移3位,因此10^(k * log10 n)的

潜水的程序猿 457

使用 IMDb API 获取电影评分和评论的 Python 爬虫

电影是人们娱乐生活中的重要组成部分,随着电影产业的快速发展,观众对电影的评价也越来越多样化。IMDb(互联网电影数据库)作为全球最大的电影评分和评论平台之一,收录了成千上万部电影、电视节目及其相关数据。它提供了一个强大的 API 接口,允许开发者访问电影的评分、评论、演员信息等数据。本文将带你一步一步实现一个 Python 爬虫,使用 IMDb API 获取电影的评分和评论。我们将通过这个爬虫来分析一些热门电影的观众反馈,并可视化分析结果。

2201_76125261的博客 1055

UVA11029 Leading and Trailing【快速模幂+数学】

Apart from the novice programmers, all others know that you can’t exactly represent numbers raised to some high power. For example, the C function pow(125456, 455) can be represented in double data ty...

海岛Blog 591

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

UVa 11029 Leading and Trailing

题目要求输出N的K次方的前三位和后三位。后三位的解法不用多说了,用二分法快速去模即可。关键是前三位怎么求?题目中说N能用32位带符号整数表示,K最大是10的六次方。因此N^K的解ans最多不过10^(9*10^6),因此我们完全可以用以十为底的对数x+y表示,其中x表示对数的整数部分,y表示对数的小数部分。显然,ans的具体数字是由10^y来表示的,而x只是用来将小数以为成整数而已。并且可以确定的

姚灯灯的专栏 1129

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

UVA 11029 Leading and Trailing [数学]

Apart from the novice programmers, all others know that you can’t exactly represent numbers raised to some high power. For example, the C function pow(125456, 455) can be represented in double data t

Tabris的博客 401

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

UVa 11029 - Leading and Trailing 数学题(求n^k的前N位和后N位)

/** * 题意求n^k的前三位和后三位: * * 一开始就是把n变成小数,循环运算,然后再乘1000取前三位,结果TLE。。。 * 总是忘了用log神器。。。 * * 首先,后三位好求。 快速幂取模就行。或者循环取模应该也不会超市。 * * 再者,前三位: * 这里就要用到log神器了。。。 * 设 n^k = A 两边取对数有: lgA = k * lgn; * 则

xuruoxin的专栏 1405

UVa 11029 Leading and Trailing (如何计算n^k的开头三位和末尾三位?)

思路:后三位好求,mod=1000的快速幂就是。 那前三位怎么求呢?——对数 令x=lg(n^k)的整数部分,y=lg(n^k)的小数部分,则n^k由y决定——因为10^x是1000...0。所以10^y再乘上100取整就是前三位。 完整代码:

AC,∑ndless 1914

uva 11029 Leading and Trailing(求n^k的前几位和后几位 证明)

题意: 给n,k,求n^k的前3位和后3位数字是多少。 解析: 知识点挺多的一道题目。 首先后三位好求,直接快速幂mod 1000就出来了。 要注意的是这个数可能不是3位数,所以最后输出的时候在前面补0,所以是%03d。 然后时前三位的计算方法,lg大法好。 设 n ^ k = t,左边取lg,取10^,得 10 ^ lg(n ^ k ) = 10 ^ (k * lg(n))

渐近自由 486

UVA 11029 - Leading and Trailing

求n^k的前3位和后3位. 后三位:通过快速幂取模求得. 前三位:将n^k转换成10^(k*log10(n)),用fmod求得k*log10(n)的小数部分t, 10^(t)的整数部分就是第一位, 10^(2 + t)的整数部分自然就是前三位了. #include #include #include #include #include using namespace std; l

蚂蚁大战大象 593

UVA - 11029 Leading and Trailing

题目大意:给出一个n和k求n^k的前三位数和后三位数。 解题思路:后三为数可以用分治的方法(快速幂)去做,可是前三位数就比较麻烦了,看了别人的题解. n^k = 10 ^ (k * log10(n)),所以可以将多余的位数移到小数点后面然后舍弃掉,只保留前三位,pow(10, 2 + fmod(k * log10(n), 1)). #include #include int pow

Bingo 1736

Uva 11029 Leading and Trailing (求n^k前3位和后3位)

题意:给你 n 和 k ,让你求 n^k 的前三位和后三位 思路:后三位很简单,直接快速幂就好,重点在于如何求前三位,注意前导0 资料:求n^k的前m位 博客连接地址 代码: #include <iostream> #include <cmath> #include <cstdio> #include <algorithm...

202

uva 11029 Leading and Trailing

uva 11029 Leading and Trailing

@fei 662

Leading and Trailing - UVa 11029

Apart from the novice programmers, all others know that you can’t exactly represent numbers raised to some high power. For example, the C function pow(125456, 455) can be represented in double data ty

提比的强行AC 568

UVA-11029 Leading and Trailing

Apart from the novice programmers, all others know that you can’t exactly represent numbers raised to some high power. For example, the C function pow(125456, 455) can be represented in double da...

weixin_30908649的博客 102

UVa 11029 - Leading and Trailing 求n^k的前3位

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1970

u014683696的专栏 440
上一篇: uva10820 - Send a Table 欧拉函数
下一篇: uva10673 - Play with Floor and Ceil 扩展欧几里德算法
小小小小葱
博客等级 码龄14年 22粉丝 266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值