您的位置:首页 > 编程语言 > Java开发

杭电ACM1060 Leftmost Digit

2015-11-30 20:11 281 查看
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.

题目大意:求n^n得最左边一位数字。

分析:最左边一位数字设为x,则:

x=[10^(nlgn-[nlgn])] ([]表示取整)

因为n^n的科学计数法表示为:10^(nlgn-[nlgn]*10^[nlgn].

import java.util.Scanner;
/**计算N^N的最左边的一位数*/
public class LeftmostDigit {
/*            calculate :[10^(nlgn-[nlgn])]*/
public static void main(String args[]){
Scanner s=new Scanner(System.in);
int T=s.nextInt();
for(int i=0;i<T;i++){
int N=s.nextInt();
double r=N*Math.log10(N);
long t=(long)r;
double x=r-t;
int result=(int)(Math.pow(10, x));
System.out.println(result);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm 杭电 java 1060