HDU-1060-Leftmost Digit
来源:互联网 发布:java 整型数组 编辑:程序博客网 时间:2024/05/20 02:26
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).
Output
For each test case, you should output the leftmost digit of N^N.
Sample Input
2
3
4
Sample Output
2
2
Hint
In 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.
求n^n的第一位数。
令m=n^n,两边同取对数,得到log10(m)=n*log10(n)
再得到,m=10^(n*log10(n))
对于10的整数次幂,第一位是1,所以,第一位数取决于n*log10(n)的小数部分
代码:
#include <iostream>#include <iomanip>#include <cstdio>#include <cstdlib>#include <string>#include <cstring>#include <cmath>#include <algorithm>#define N 1000010using namespace std;int main(){#ifndef ONLINE_JUDGE freopen("1.txt", "r", stdin);#endif int n, T; long long t; double a, b, c; cin >> T; while(T--) { cin >> n; a = n*log10(n); t = (long long)a; b = a - t; cout <<(long long)pow(10, b) << endl; } return 0;}
0 0
- HDU 1060 Leftmost Digit & BIT1046 Leftmost Digit
- hdu 1060 Leftmost Digit
- hdu 1060 Leftmost Digit
- HDU 1060 Leftmost Digit
- hdu 1060 Leftmost Digit
- hdu 1060 Leftmost Digit
- HDU 1060 LeftMost Digit
- HDU 1060 Leftmost Digit
- HDU 1060 Leftmost Digit
- hdu 1060 Leftmost Digit
- hdu 1060 Leftmost Digit
- hdu - 1060 - Leftmost Digit
- hdu 1060 Leftmost Digit
- HDU 1060 Leftmost Digit
- hdu 1060 Leftmost Digit
- HDU 1060 Leftmost Digit
- HDU-1060 Leftmost Digit
- hdu 1060 Leftmost Digit
- 如果编程语言是种武器 你会选择哪个?
- http://www.360doc.com/content/15/0304/16/11800748_452522539.shtml
- android activity生命周期
- ATL 与WTL使用CString 的文件声明
- 指向结构体的指针
- HDU-1060-Leftmost Digit
- latex参考文献为网址
- 撤销Undo
- 【OpenCV】绘制图像的直方图
- Java数组
- 社区发现的一些算法
- 互联网四大黄金职位
- 普通类初始化那点事
- 地面效应和起飞不平稳的问题