zoukankan      html  css  js  c++  java
  • hdu1060数学题求幂最左边的数

    真正的数学题,题目大意是求n^n的最左边的一位数。n最大10^7,如果用for循环100%超时了。百度一下,你就知道。方法如下:

    设m=n^n,则lg(m)=n*lg(n),所以m=10^(n*lg(n))=10^(整数部分+小数部分),他只要求最左边的,我只要取int(10^(小数部分)),就可以了。。太尼玛是数学题了。。

    #include<iostream>
    #include<cmath>
    using namespace std;
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            long double n;
            cin>>n;
            double m=n*log10(n);//m^10=n^n
            int result=powl(10,m-(long double)((long long int)(m)));
            cout<<result<<endl;
        }
        return 0;
    }
    

      

  • 相关阅读:
    MyISAM 和 InnoDB 索引的区别
    iOS crash日志
    。。。
    redis的缓存测试
    job测试
    笔记
    Android获取启动页面Activity方法
    UI自动化框架-一个小demo
    mitmproxy-java 的尝试
    monkey
  • 原文地址:https://www.cnblogs.com/cj695/p/2614049.html
Copyright © 2011-2022 走看看