🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## n的n次方计算 ~~~ 题目描述 现给你一个正整数N,请问N^N的最左边的数字是什么? 输入格式 输入包含多组测试数据。每组输入一个正整数N(N<=1000000)。 输出 对于每组输入,输出N^N的最左边的数字。 样例输入 3 4 样例输出 2 2 ~~~ 分析: //求一个小数的N 的N次方很容易,交给计算机,但是如果是大数呢?连计算机也受不了,100的100次方肯定会越位 //因而我们要寻找一种简便的来求其最左一位 //x=log[10]n^n=nlog[10]n; //设x=a+b,a为整数部分,b为小数部分; //又n^n=10^x=10^a*10^b; //因为a是整数,无论a是多少,10^a必为10 的倍数,也就是10^a无论乘以什么数都不会改变最左一位的值,所以最左一位由10^b决定 (代码Java) ~~~ public class Main { public static void main(String[] args) { java.util.Scanner input = new java.util.Scanner(System.in) ; while(input.hasNextInt()){ int n =input.nextInt(); double x = n*Math.log10(n); double m = x-(int)x; int m1=(int)Math.pow(10,m); System.out.println(m1); } } } ~~~