杭电acm 1060
2015-10-12 17:21
351 查看
/*N^N=10^(N*logN),即可以转化求10^(N*logN)的首位数字。 对于10^(X),X为一个实数,可以分解成一个整数加一个小数的和,X = Z + P。即10^(X) = 10^(Z + P) = 10^Z * 10^P,其中(0 <= P < 1) 显然这里的10^Z是不会影响到10^(X)的首位数字,即关键问题是要求10^P的首位数字。因为0 <= P < 1 所以 1 <= 10^(P) < 10,只要我们求出10^(P)的值,然后取整 所得到的值就是10^(X)的首位数字*/思路很巧妙 以后的变成可以借鉴。import java.util.Scanner;import java.math.*;public class Main{public static void main(String []args){Scanner sc = new Scanner(System.in);int fir=sc.nextInt();while(fir>=1){int a=sc.nextInt();double np=a*Math.log10(a);double p=np-Math.floor(np);int res=(int)Math.pow((double)10, p);for(;res>10;){res/=10;}System.out.println(res);fir--;}}}注意 一个浮点数的转化 使用floor函数和直接int转化是不一样的。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统