• 我想知道怎么求N的N次方


    我想知道怎么求N的N次方,这个数据是很大的,但是我要的是这个数据的最高位的数,应该有什么好的方法吧!
    请大侠们帮帮忙吧!!(N <1000000000)


    这个问题提出后,fallening同学便很快的在五分钟内作出了解答
    log_10(N^N)=N*log_10(N) 因此,log_10(N)的第一位就是你要求的:)
    我在三楼看的很疑惑,于是向同学提出问题,一天之后他给出解答
    N^N=10^(Nlog(N))=10^(log(N))*10^N= 10^(log(N))*1000...0(N个0)
    你要最高位置的数字,只需要计算10^(log(N))的最高位即可:)
    而到这里,大家很明显就能看出这位同学的推理错误10^(N log(N))= 10^(log(N))*10^N。。。哈哈
    哈哈,如果你和我一样开始笑话起这个同学,那么我们就太可悲了。。。
    看看楼下的朋友们是怎么做的吧,,

     

    hityct1:我的想法:
    根据11楼的想法,改动一下。
    N^N = 10^(N*log(N))中,
    由于 N <1000000000,
    N*log(N)取值在[0,9000000000],没有超出double数据的范围,没有益处。
    设N*log(N)的整数部分为intpart,分数部分为fractpart,
    则N^N = 10^(intpart + fractpart) = 10^intpart * 10^fractpart.
    其中10^intpart肯定为10的倍数,不影响结果,可忽略。
    所以:
    10^fractpart的最高位即为结果。

    不用大数,double即可满足。 

    #include <iostream>
    #include <limits>
    #include <cmath>
    using namespace std;

    int GetHighest(const double& n)
    {
    //求n^n的最高位
    //注意:n取 1,2,3,...,1000000000

        double intpart;
        double fractpart = modf ( n * log10(n), &intpart);

        //显然分数部分在[0,1)之间,所以temp在[1,10)之间,那么整数部分即为结果
        double temp = pow( (double)10, fractpart);

        modf ( temp, &intpart);

        return intpart;
    }

    void main()
    {
        //cout<<numeric_limits<double>::max()<<endl;
           
        cout<<GetHighest(1)<<endl;
        cout<<GetHighest(2)<<endl;
        cout<<GetHighest(3)<<endl;
        cout<<GetHighest(4)<<endl;
        cout<<GetHighest(5)<<endl;
        cout<<GetHighest(6)<<endl;
        cout<<GetHighest(4678)<<endl;
        cout<<GetHighest(1000)<<endl;
        cout<<GetHighest(1000000000)<<endl;
        cout<<GetHighest(1999)<<endl;
        cout<<GetHighest(999999999)<<endl;
    }


    关键看你专注你什么了,所以说少笑话他人,而多想想该做什么事。勤思考,多思考。
    这估计也是科学的精神吧,一个人提出一个观点,虽然有点问题,可是大家受到他的启发,通过论证,而最终得到了答案。

  • 相关阅读:
    sqlserver数据导入导出问题
    关于数据库冗余设计的思考
    cordova插件开发注意事项
    阿里云旺集成问题
    aspnet webapi 跨域请求 405错误
    跨域无法获取自定义header的问题
    angular input标签只能单向传递数据的问题
    android audio无法自动播放
    jquery mobile 问问多多
    mysql 表表连接的问题。
  • 原文地址:https://www.cnblogs.com/dmesg/p/1536997.html
Copyright © 2020-2023  润新知