• hdu_1060_Leftmost Digit_201311071827-2


    Leftmost Digit

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11305    Accepted Submission(s): 4329

    Problem Description
    Given a positive integer N, you should output the leftmost digit of N^N.
     
    Input
    The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contains a single positive integer N(1<=N<=1,000,000,000).
     
    Output
    For each test case, you should output the leftmost digit of N^N.
     
    Sample Input
    2
    3
    4
     
    Sample Output
    2
    2
    Hint
    In the first case, 3 * 3 * 3 = 27, so the leftmost digit is 2. In the second case, 4 * 4 * 4 * 4 = 256, so the leftmost digit is 2.
     
    Author
    Ignatius.L
     
     //x ^ x= 10^(x*lg(x))=10^(整数部分+小数部分) ;则x ^ x的最高位是由小数部分决定的(因为10的整数次幂不会影响最高位,只在最末位加0)。
     //去掉整数部分(floor函数向下去整)得到10^(小数部分)最高位即是所求……
     1 //x ^ x= 10^(x*lg(x))=10^(整数部分+小数部分) ;
     2 #include <stdio.h>
     3 #include <math.h>
     4 
     5 int main()
     6 {
     7     int T;
     8     scanf("%d",&T);
     9     while(T--)
    10     {
    11         int n,t;
    12         double a;
    13         scanf("%d",&n);
    14         a = log10((double)n);
    15         a -= (int)a;
    16         //n*a的结果可能很大,所以先减去整数部分再乘 
    17         a = n*a;
    18         t = (int)a;
    19         a -= t;
    20         t = (int)pow(10.0,a);
    21         printf("%d
    ",t);
    22     }
    23     return 0;
    24 }


    链接:http://www.cnblogs.com/hxsyl/archive/2012/09/04/2671068.html

    总结:数学题,log的运用,掌握的不行,需多练习

  • 相关阅读:
    剑指Offer 28 对称的二叉树
    剑指Offer 54 二叉搜索树的第k大节点
    剑指Offer 41 数据流中的中位数
    剑指Offer 59 队列的最大值
    剑指Offer 12 矩阵中的路径
    剑指Offer 13 机器人的运动范围
    剑指Offer 42 连续子数组的最大和
    一句话总结随机森林
    一句话总结卷积神经网络
    一句话总结K均值算法
  • 原文地址:https://www.cnblogs.com/xl1027515989/p/3413030.html
Copyright © 2020-2023  润新知