同样使用lg值计算最高位。任意一个数都可以表示为科学计数法的性质,即N^N=a*10^x,所以最高位就是a的整数部分。
1.怎样去除10^X呢? 取lg的对数然后去除整数部分,然后将小数部分再取10的指数得到的值就是a。
2.怎样去取最高位。对a取整即是。
所以有代码:
#include <stdio.h> #include <math.h> int main() { int caseNum; scanf("%d",&caseNum); for(int i=0;i<caseNum;i++) { double num; scanf("%lf",&num); double logNum=num*log10(num); double remainder=logNum-(__int64)logNum; int result=pow(10.0,remainder); printf("%d\n",result); } return 0; }