hdu 1060 - Leftmost Digit(求N^N最高位)
来源:互联网 发布:淘宝店后台操作 编辑:程序博客网 时间:2024/06/06 11:49
Leftmost Digit
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10320 Accepted Submission(s): 3923
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.
===========================
借鉴了下别人的思路:
http://blog.csdn.net/lovelyloulou/article/details/5237263
令num^num=10^n *a(科学计数法)
两边取对数: num*lg(num) = n + lg(a);
因为a<10,所以0<lg(a)<1
令x=n+lg(a); 则n为x的整数部分,lg(a)为x的小数部分
a=10(x-n)=10(x-int(x)))
再取a的整数部分即得num的最高位
log(n):以e为底的对数
log10(n):以10为底的对数
以a为底的对数用换底公式:log(n)/log(a)
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;int main(){ int t; double x; long long n; scanf("%d",&t); while(t--) { scanf("%I64d",&n); x=n*log10(n*1.0); //cout<<x<<endl; x-=(long long)x; int a=pow(10.0,x); printf("%d\n",a); } return 0;}
- hdu 1060 - Leftmost Digit(求N^N最高位)
- HDU 1060 Leftmost Digit(求 n ^ n 的最高位的值)
- HDOJ1060 Leftmost Digit(求n^n的最高位)
- HDU Leftmost Digit(求n^n最高位的数字)
- Leftmost Digit(杭电1060)(求N^N的最高位)
- HDOJ-1060-Leftmost Digit(求n^n的最高位)
- HDOJ-1060-Leftmost Digit(求n^n的最高位)
- HDOJ-1060-Leftmost Digit(求n^n的最高位)
- HDU 1060 Leftmost Digit(求n^n的最左位)
- HDOJ 1060 Leftmost Digit(数学,求n^n的最高位)
- ACMSTEP 2.1.7 Leftmost Digit // 数论 求 N^N最高次位
- HDU n^n求最高位
- hdu 1061 - Rightmost Digit(求N^N末位)
- hdu 1060 Leftmost Digit(幂次方最高位)
- HDU 1060 求N^N的最高位 (数学,科学计数法+log10()函数)
- 数论 hdu 1060 n^n最高位
- 数学1(n^n)Leftmost Digit
- HDU 1061 Rightmost Digit (求n^n的最低位)
- xml
- 黑马程序员-File类
- 有事情找 就man
- Maven安装配置及其插件m2e(Eclipse Indigo 和 MyEclipse8.5)的安装配置
- .net中实现联合体类型
- hdu 1060 - Leftmost Digit(求N^N最高位)
- java实现字母的升序排列,和中文升序排列
- Mindjet2012 使用中 runtime error
- 如何在FlowChart.NET更改撤消或重做的属性
- <转>物化视图日志结构
- HDU1434(优先级队列)
- 最多约数问题
- 在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口
- linux下获取文件大小总结