hdu1060 N^N首位 log10

一个数a必然可以表示为10^(c+d),其中c为整数,d为小数。则n^n的首位取决于d的第一个有效数字。10^d是讲小数点后移的。

#include <iostream>
#include <string>
#include <cstring>
#include <queue>
#include <stack>
#include <cmath>
#include <algorithm>
#include <cstdio>

using namespace std;
int main()
{
    int t;
    cin >> t;
    while(t -- )
    {
        double sum , per , beh , n;
        cin >> n;
        beh = n * log10(n) - (long long)(n* log10(n));
        per = pow((double)10 , beh);
        per = (long long )per;
        cout << per << endl;
    }
    return 0 ;
}


你可能感兴趣的:(hdu1060 N^N首位 log10)