HDOJ-----1060简单数学题

来源:互联网 发布:遗传算法 排课系统 编辑:程序博客网 时间:2024/05/17 22:43
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
234
 

Sample Output
22数学~~~啊~~~~~~求N的N次方最左端的数字设M = N ^ N,则log10(N^N) = log10(M),M = 10 ^ (N*log10(N)),10整数倍的最左边整数位为1,其他位为0,只需求N * log10(N)小数位
</pre><br /><pre name="code" class="cpp">#include<cstdio>#include<cmath>int main(){    int a, t;    double k;    scanf("%d", &t);    while(t--){        scanf("%d", &a);        k = a * log10(a) - (long long)(a * log10(a));        printf("%d\n", (int)pow(10, k));    }    return 0;}
0 0