Light oj 1282 (求一个数的前三位和后三位)
来源:互联网 发布:光电效应实验数据表格 编辑:程序博客网 时间:2024/06/04 18:11
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
题意:求n^k的前三位和后三位;
思路:
求前三位时,n^k=10^(k*log10(n));
令b=k*logn10(n),求出b的小数部分b=b-(int)b;然后求pow(10,b)*100,就是前三位;
例如:123456=1.23456*10^5=10^log10(1.23456)*10^5=10^(5+log10(1.23456));
b=5+log10(1.23456),小数部分为log10(1.23456),则pow(10,log10(1.23456))=1.23456,1.23*100=123.456,转化为整形就求得了前三位;
代码:
#include<stdio.h>#include<string.h>#include<math.h>long long quick_pow(int n,int k){long long base=n,ans=1;while(k){if(k&1){ans=(ans*base)%1000;}base=(base*base)%1000;k>>=1;}return ans;}int main(){int n,k,t,mm=1;scanf("%d",&t);while(t--){scanf("%d%d",&n,&k);double b=k*1.0*log10(n*1.0); b=b-(long long)b;//求小数部分; long long ans1=pow(10,b)*100;//求出来的是小数,强制转换为long long整形; long long ans2=quick_pow(n,k);//求后三位; printf("Case %d: %lld %03lld\n",mm++,ans1,ans2);}return 0;}
- Light oj 1282 (求一个数的前三位和后三位)
- LightOJ 1282(求高次幂的前三位和后三位)
- LightOJ 1282 - Leading and Trailing (求n^k的前三位和后三位)
- lightoj 1282 Leading and Trailing(求n^k的前三位后三位)
- 求一个数的k次方的前三位。
- LightOj1282(阶乘前三位和后三位)
- LightOJ 1282 Leading and Trailing(n阶的前三位,后三位)
- 神奇的数学公式。。。求《k次方》的前三位与后三位
- K次方(即求n^k的前三位与后三位)
- K次方(即求n^k的前三位与后三位)
- C语言之基本算法15—前三位和后三位都是完全平方数的六位完全平方数
- 求一个三位正整数各位数之和
- hdu2035-求N^N的后三位
- LightOJ 1282 求n^m的高三位和低三位
- LightOJ 1282 Leading and Trailing(n^k的高三位和低三位)
- 题目描述:有这样一种数,它本身是一个整数的平方,其高三位和低三位也分别是一个整数的平方,求100000到999999之间的所有三平方的数据进行求解!
- 求n的m次方的后三位...
- 求a*b的后三位 二分加速法
- keytool生成证书与Tomcat SSL配置
- 隐私策略
- 泊松分布的前世今生
- 基于Jquery easyui 选中特定的tab并更新
- 安卓验证码倒计时的实现
- Light oj 1282 (求一个数的前三位和后三位)
- Android时间日期类小结
- KSH 语法
- linux 下文件的3种时间状态 atime ctime mtime
- winform分页小控件
- word2vec词向量训练及中文文本相似度计算
- 全局变量与局部变量的区别
- iOS打包IPA文件
- freeswitch 安装和问题解决