Leftmost Digit(数论)
来源:互联网 发布:淘宝客服催好评用语 编辑:程序博客网 时间:2024/06/05 15:30
Problem Description
Given a positive integer N, you should output the leftmost digit of N^N.
Input
The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow.
Each test case contains a single positive integer N(1<=N<=1,000,000,000).
Each test case contains a single positive integer N(1<=N<=1,000,000,000).
Output
For each test case, you should output the leftmost digit of N^N.
Sample Input
234
Sample Output
22HintIn the first case, 3 * 3 * 3 = 27, so the leftmost digit is 2.In the second case, 4 * 4 * 4 * 4 = 256, so the leftmost digit is 2.
Author
Ignatius.L
题意:
求n^n的最左边的位数!!看题目 n到100000000
解析:
N^N=a*10^k //0<a<1,k为N^N的位数
两边取以10为底的对数
N*log10(N)=log10(a)+k
k=log10(N^N)=N*log10(N)取整
则log10(a)=N*log10(N)-取整(N*log10(N))
代码:
#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int main() {int ca,n;double x;cin>>ca;while( ca-- ) {cin>>n;x=n*log10((double)n);x=x-(__int64)x;cout<<(int)pow(10.0,x)<<endl;}return 0;}int 和 long 型为 32 位整型,其范围为 -2G(-21亿多)至 2G(+21亿多),若需要计算的整数超出此范围,则需要使用 __int64 类型,此类型为 64位整数,其范围非常大,一般不会超出范围
阅读全文
1 0
- Leftmost Digit(数论)
- Leftmost Digit(数论)
- Leftmost Digit(对数,数论)
- HDU1060:Leftmost Digit(数论)
- HDU 1060 Leftmost Digit (数论)
- HDU 1060 Leftmost Digit(数论)
- HDU 1060 Leftmost Digit(数论)
- hdoj 1060 Leftmost Digit 【数论】
- ACM_HDU 1060+1061 leftmost or rightmost digit(数论)
- Leftmost Digit(数学)
- Leftmost Digit (HDU 1060)
- Leftmost Digit(HDU 1060)
- Leftmost Digit
- Leftmost Digit
- Leftmost Digit
- Leftmost Digit
- Leftmost Digit
- Leftmost Digit
- babel-plugin-import
- 分页的第四种方式
- Camtasia Studio 9录制高清、超清视频教程
- pexpect之ssh_scp02
- 完全掌握反射的各种用法
- Leftmost Digit(数论)
- [数据结构]队列的实现-C++
- C
- spring_由注解实现AOP面向切面编程_实现动态代理
- 文
- HSSFShape
- [BZOJ1835][ZJOI2010]base 基站选址
- WinForm 实现鼠标拖动控件跟随效果(图文)
- 配置maven镜像