编程介的小学生 2019-11-20 17:55 采纳率: 0.4%
浏览 78

Root of the Problem

Problem Description
Given positive integers B and N, find an integer A such that AN is as close as possible to B. (The result A is an approximation to the Nth root of B.) Note that AN may be less than, equal to, or greater than B.

Input
The input consists of one or more pairs of values for B and N. Each pair appears on a single line, delimited by a single space. A line specifying the value zero for both B and N marks the end of the input. The value of B will be in the range 1 to 1,000,000 (inclusive), and the value of N will be in the range 1 to 9 (inclusive).

Output
For each pair B and N in the input, output A as defined above on a line by itself.

Sample Input
4 3
5 3
27 3
750 5
1000 5
2000 5
3000 5
1000000 5
0 0

Sample Output
1
2
3
4
4
4
5
16

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-29 12:58
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    # read data
    B <- 1:1e+06
    N <- 1:9
    data <- expand.grid(B,B,N)
    
    # sort values in ascending order
    data$B <- data$B[order(data$B)]
    data$N <- data$N[order(data$N)]
    
    # calculate difference between B^N and B
    data$diff <- (data$B^(1/data$N) - data$B)
    
    # sort differences in ascending order
    data$diff <- data$diff[data$diff < 0][order(-data$diff)]
    data$diff <- data$diff[order(-data$diff, decreasing = TRUE)]
    
    
    # find closest value to B
    closest <- data$diff[which.min(abs(data$diff))]
    print(closest)
    
    评论

报告相同问题?