题目大意:
给两个数 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 }