zoukankan      html  css  js  c++  java
  • 前人的代码(数学思想很重要)

    /*
    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的最高位即为结果(因为0<=fractpart<1,所以1<=10^fractpart<10,所以10^fractpart的整数部分就是答案)
    */

    #include<iostream>
    #include<cmath>
    using namespace std;
    double solve(double n)
    {
         double intpart,fractpart,t;
         //double modf (double, double*); 将参数的整数部分通过指针回传, 返回小数部分
         fractpart = modf(n*log10(n),&intpart);
         t = pow(10,fractpart);
         modf(t,&intpart);
         return intpart;
    }
    int main()
    {
         double n;
         while(cin>>n)
         {
              if(n!=0)
                   cout<<solve(n)<<endl;
         }
     return 0;
    }

    关于<cmath>的modf函数

    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
        double number=123.54;
        double fraction,integer;
               fraction=modf(number,&integer);
             //整数部分
        printf("%lf
    %lf
    ",number,integer);
             //小数数部分
        printf("%lf
    %lf",number,fraction);
        return 0;
    }

    Resutlt:

    123.540000
    123.000000
    123.540000
    0.540000

  • 相关阅读:
    区块链入门
    上海美食餐厅
    《OD学hadoop》20160910某旅游网项目实战
    《OD学hadoop》20160904某旅游网项目实战
    《OD学hadoop》20160903某旅游网项目实战
    qt5-自定义类
    qt5-Qt Creator使用
    qt5-QPushButton按钮
    qt5-工程文件的介绍--快捷键
    电路分析-电阻
  • 原文地址:https://www.cnblogs.com/jianfengyun/p/3720970.html
Copyright © 2011-2022 走看看