点击打开链接

Leftmost Digit

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

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

Recommend

We have carefully selected several similar problems for you:  1061 1071 1573 1066 1065

思路:

    题意很简单:求N^N的最左边一位的数字.这道题在Math分类中难度为3.用暴力法是绝对会溢出的.

以下内容来自科学计数法-维基百科

科学记数法(英语:Scientific notation)是一种记数的方法。

在科学记数法中,一个数被写成一个1与10之间的实数(尾数)与一个10的次幂的积:

其中 :

  • (如果  是一个比1少的小数,或比 10 大,皆可改变  来表达)
  •  是一个整数

例子[编辑]

  • 782300=7.823×105
  • 0.00012=1.2×10−4
  • 10000=1×104

回到本题,这道题很好的运用了科学计数法的特点.

假设M=N^N,

则有M=,两边同时取对数log10(M)=log10(a)+n,其中1<=|a|<10,所以log10(a)必然表示的是log10(M)的小数部分

(因为log10(10)=1,log10(1)=0所以1<=a<10的对数肯定小于1而大于等于0),所以,当务之急是将log10(M)的小数部分找到.

这个比较容易,我们只需要log10(M)-floor(log10(M)) 即可.//floor函数表示向下取整.

#include<stdio.h>
#include<math.h>
#include<limits.h>
int main()
{int T;double sum,logSum,DecSum ;scanf("%d",&T) ;while(T--){scanf("%lf",&sum);logSum = sum * log10(sum);DecSum=pow(10.,logSum-(long long)logSum); //用floor或者(long long),不能用(int)printf("%d\n",(int)DecSum);}return 0;
}
//1000000000

注意边界点:1和1000000000.

拓展:

log10()函数的用法

决窍一:求整数n的位数.1+(int)log10(n).(注意:其中n>0)

#include<stdio.h>
#include<math.h>
int main()
{double T,n;while(scanf("%lf",&n)!=EOF){T=log10(n);printf("%d\n",1+(int)T); //输出n的位数}return 0;
}

决窍二:科学计数法中截取整数部分或者小数部分.

科学计数法表示M=a*10^m,其中1<=a<10,m为整数.两边取对数log10(M)=log10(a)+m.log10(a)表示的是小数部分,

m表示的是整数部分.要恢复a的值只需要10^log10(a).

log10()的运用相关推荐

  1. R语言使用lm构建线性回归模型、并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图、可视化模型的残差、模型预测中系统误差的一个例子 、自定义函数计算R方指标和均方根误差RMSE

    R语言使用lm构建线性回归模型.并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图.可视化模型的残差.模型预测中系统误差的一个例子 .自定义函数计算R方指标和均方根误差RMSE 目 ...

  2. R语言ggplot2可视化:ggplot2可视化密度图(显示数据密集区域)、ggplot2可视化密度图(对数坐标):log10比例的收入密度图突出了在常规密度图中很难看到的收入分布细节

    R语言ggplot2可视化:ggplot2可视化密度图(显示数据密集区域).ggplot2可视化密度图(对数坐标):log10比例的收入密度图突出了在常规密度图中很难看到的收入分布细节 目录

  3. python3 log_Python3 log10()函数简单用法

    描述 log10() 方法返回以10为基数的x对数,x>0. 语法 以下是 log10() 方法的语法: import math math.log10( x ) 注意:log10()是不能直接访 ...

  4. python log函数_Python log10() 函数

    Python log10() 函数 描述 log10() 方法返回以10为基数的x对数. 语法 以下是 log10() 方法的语法:import math math.log10( x ) 注意:log ...

  5. strictmath_Java StrictMath log10()方法与示例

    strictmath StrictMath类log10()方法 (StrictMath Class log10() method) log10() method is available in jav ...

  6. JavaScript中带有示例的Math.log10()方法

    JavaScript | Math.log10()方法 (JavaScript | Math.log10() Method) Math operations in JavaScript are han ...

  7. 使用帅气的cordic算法进行坐标系互转及log10的求解

    参考博客 https://blog.csdn.net/u010712012/article/details/77755567 https://blog.csdn.net/Reborn_Lee/arti ...

  8. matlab2c使用c++实现matlab函数系列教程-log10函数

    全栈工程师开发手册 (作者:栾鹏) matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 matlab2c调用方法: 1.下载动态链接库 2. ...

  9. 一种近似AMP音频增益转dB的优化写法:20.0*log10(amp)

    AGC算法中有两个很重要的优化函数,没有具体测试这两个函数到底优化多少 2022年8月18日做了一个MIPS的效率测试,测试函数如下 void TranslateDBCompare1(void) {i ...

  10. Matlab基本函数-log10函数

    1.log10函数:求以10为底的对数 2.用法说明 y = log10(x) 函数对数组x的元素逐个进行以10为底的对数运算.y = a+b*i,有log10(y) = log10(abs(y))+ ...

最新文章

  1. 基于OpenCV Haar实战级联分类器的使用
  2. shell脚本——字符串 数组
  3. hibernate防止sql注入对参数赋值传参数的例子
  4. 冲动的惩罚 - 刀郎 - 新阿瓦尔古丽
  5. Android 高德地图 Native method not found: com.autonavi.amap.mapcore.MapCore.nativeNewInstance:(Ljava/lan
  6. amazeui学习笔记--js插件(UI增强)--警告框Alert
  7. 淘宝开放平台 ISV入驻开发流程
  8. mysql 上一周起始时间_mysql 某周的起始和结束日期
  9. 联想家悦微型计算机的包装箱,08年联想家悦所有型号,联想家悦小机箱型号-
  10. matlab输入二项分布函数,MATLAB如何使用binopdf函数计算二项分布的概率
  11. 扩展名是.ps的PostScript文件详解
  12. vsd/jpg/emf/fig 转 eps
  13. 关于contiki中的Ctimer和Etimer
  14. C++问答2 三大特性
  15. BUUCTF之Ping Ping Ping
  16. OPenGL笔记--创建三维图形(立方体)
  17. 3 分钟带你看懂 Acala EVM
  18. java零到一:Servlet和JSP-7:转发、重定向的区别 和状态管理
  19. [ML]归纳学习与机器学习概述
  20. 俯视两道中学平面几何题

热门文章

  1. 【漆学军】EA编程速成教程(5)增加一个下单条件:抛物线指标
  2. DOCSIS CM上线流程
  3. spark环境安装及配置详细(附带相关错误及解决办法)
  4. LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar
  5. Java毕设项目大型商场应急预案管理系统(java+VUE+Mybatis+Maven+Mysql)
  6. 车间静电消除不掉?静电接地桩来帮忙!
  7. 对话孙昌勋:基石之上,容联云的变与不变
  8. PowerShell 函数(Function)
  9. java象棋游戏参考文献_java中国象棋(论文+程序)
  10. 2021年电工(初级)考试及电工(初级)考试资料