zoukankan      html  css  js  c++  java
  • hdu1060 数论

      没思路,看了网上各路好汉的分析之后略懂一二。

      任一个数m可以表示成10^(n+x),这里n为整数,x是小数。我们知道10^(n+x)=(10^n)*(10^x),前者的结果很明显,所以只要求出10^x,就可以知道m最左面的数值。

      (够shit)

       

    #include <iostream>

     #include <math.h>

    using namespace std;

     int main()

     {     double x,m,sum;  

       __int64 i,res,b;  

       __int64 n;   

      cin>>n; //如果换成scanf("%I64d",&n);会超时!!!!!

        while(n--)    

     {      

         scanf("%lf",&m);    //特么的刚开始一直写成ld

           x=m*log10(m);   

            b=(__int64)(x);      

           sum=x-b;       

           res=(__int64)(pow(10.0,sum));  //这里的pow(),里面的两个参数的类型要搞清楚

           printf("%I64d\n",res);

        }    

     return 0; }

  • 相关阅读:
    文本分类的研究学习
    Python中的TfidfVectorizer参数解析
    Newsgroups数据集介绍
    鸢尾花数据读取的总结
    Knapsack Problems
    3.1.6 Stamps
    3.1.5 Contact
    3.1.4 Shaping Regions
    3.1.3 Humble Numbers
    3.1.2 Score Inflation
  • 原文地址:https://www.cnblogs.com/orangeblog/p/2233117.html
Copyright © 2011-2022 走看看