您的位置:首页 > 其它

hdu 1060

2012-09-12 14:30 134 查看
这题说穿了就水了,发现高精度跟快速幂都不能过,本来以为是打表的。。。后来看了大神的思路才明白的

log10(n^n)=a+b;a为整数,b为小数;

所以n^n最左边的就是10^b的整数部分,结束;
#include <iostream>
#include <cmath>

using namespace std;
//using std::cout;
int main()
{
int i,t,n,ans;
__int64 a;
double f;
cin>>t;
while (t--)
{
cin>>n;
f=(double)n*log10(n);
a=f;
f=f-a;
ans=int(pow(10,f));
while (ans/10)
{
ans/=10;
}
cout<<ans<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: