/*
求num的最左位上的数:
设num=a.~*10^n; a即为所求
lg(num)=n+lg(a.~);
->:lg(a.~)=lg(num)-n;
又n为num的总位数减1,n=(int)lg(num);
->:a.~=pow(10,1g(num)-(int)(lg(num)));
*/
#include <cstdio>
#include <cmath>
#include <iostream>
#include <string>
using namespace std;
int main()
{
int cas;
scanf("%d",&cas);
while (cas--)
{
double num;
scanf("%lf",&num);
double x=num*log10(num);
x-=(__int64)x;
int ans=pow(10.0,x);
printf("%d\n",ans);
}
return 0;
}
HDOJ1060-数学公式
最新推荐文章于 2021-04-11 12:31:35 发布