周赛一 1009 u老板的存款

Description
众所周知,u老板灰常有钱,但作为一个五好男人u老板自从有了女朋友就把他挣的钱全都给了他女朋友,共有n张价值为n的鱿鱼币,而u老板娘并不屑于知道具体钱数,她只想知道总钱数的最高位是多少,然而u老板娘怎么可能算这种东西,当然是要u老板去算,可是u老板忙着挣钱也没时间算,所以就请机智的你帮他算,并承诺如果你成功的算出答案他就把他挣的钱的零头给你并且给你找个女朋友,所以能否一夜走向人生巅峰就看你能不能算出这道题了~
Input
多组输入,每组用例输入一个整数n(0< n < 10^9)
Output
n^n的最高位
Sample Input
10
Sample Output
1
Solution
这道题直接算肯定不行,也不能用快速幂之类的算法,所以只能找公式了,显然n可以表示成此形式这里写图片描述,我们要求的即为x
同时我们有
不妨令这里写图片描述
那么则有
Code

#include
#include 
int main()
{
    double n;
    while(~scanf("%lf",&n))
    {
        double temp=n*(log(n)/log(10.0))-floor(n*(log(n)/log(10.0)));
        int ans=(int)(pow(10.0,temp));
        printf("%d\n",ans);
    }
    return 0;
}

你可能感兴趣的:(周赛一 1009 u老板的存款)