hdu 1060(思维)

来源:互联网 发布:淘宝运费模板怎么写 编辑:程序博客网 时间:2024/05/22 15:12

题意:求n^n最高位的值


思路: lg(n^n)=n+lg(n)  ,  n^n=a * 10^m (0<a<10)   

所以   n+lg(n) =  lg(a*10^m ) = m+lg(a)     其中n,a,m均为整数,且  0<lg(a)<1

则 lg(a)为n+lg(n)的整数部分,然后就得到答案了


果然遇到n次方级别的数要先想到取对数啊。。


#include <iostream>using namespace std;#include <math.h>#include <algorithm>#define ll long longint main(){int t;ll n;cin>>t;while(t--){cin>>n;ll a=n* (double)( log(n)/log(10) );double b=  (double)n*(double)(log(n)/log(10))-a;//cout<<a<<' '<<b<<endl;b=pow(10,b);cout<<(ll)b<<endl;}return 0;}


原创粉丝点击