思路:
sm=n^n,兩邊分別對(duì)10取對(duì)數(shù)得 log10(m)=n*log10(n),得m=10^(n*log10(n)),由于10的任何整數(shù)次冪首位一定為1,
所以m的首位只和n*log10(n)的小數(shù)部分有關(guān);
#include<stdio.h>
#include<math.h>
int main()
{
int T;
double ans1;
__int64 ans2,ans,n;
scanf("%d",&T);
while(T--)
{
scanf("%I64d",&n);
ans1=n*log10(double(n));
ans2=__int64(ans1);
ans1=ans1-ans2;
ans=__int64(pow(10.0,ans1));
printf("%I64d\n",ans);
}
return 0;
}
題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1060
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
