首页 > 学院 > 开发设计 > 正文

hdu--1060--Leftmost Digit

2019-11-11 05:05:46
字体:
来源:转载
供稿:网友

Leftmost Digit Time Limit: 2000/1000 MS (java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17741 Accepted Submission(s): 6854

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.


需要用到科学记数法和对数运算的知识。 我们把num*num的值记作:num*num=a*10^n,其中1

附上ac代码:

#include<cstdio>#include<cmath>#include<cstring>#include<iostream>#include<algorithm>using namespace std;typedef long long ll;int main(){ int t; scanf ("%d",&t); while (t--) { ll n; int i,j; double x; scanf ("%lld",&n); x = n*log10(n*(1.0)); x -= (ll)x; int a = pow(10.0,x); printf ("%d/n",a); } return 0;}
上一篇:servlet

下一篇:代码规范重要性

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表