优美过题之术之”Power of Cryptography“

题目大意:

  给两个数  n,p(n∈[1,200],p∈[1,10^101])

  求出一个整数 k (k∈[1,10^9]),使得 k^n == p 。

  样例:  2  16           -->      4

       3  27           -->      3

       7  1234       -->     4357186184021382204544

  题目简单,但是数据范围神大,一般情况应该用二分求解,但是却有一种极为优美的过题方式。

解题思路:

  利用 double 来解,所求整数就是 k 开 n 次根号,即 k 的 1/n 次方。

AC代码:

 1 import java.util.*;
 2 import java.math.*; 
 3 
 4 public class Main{
 5     public static void main(String[] args){
 6         Scanner sc = new Scanner(System.in);
 7         while(sc.hasNext()){
 8             double a = sc.nextDouble();
 9             double b = sc.nextDouble();
10             double t = Math.pow(b,(1.0/a));
11             System.out.printf("%.0f
",t);
12         }
13     }
14 }
原文地址:https://www.cnblogs.com/love-fromAtoZ/p/7551474.html