头像
sallai-1
发布于 2020-07-09 22:34
+ 关注

求解

题意:
        一天,牛妹找牛牛做一个游戏,牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的。
操作共有三种,如下:
        1.在当前数字的基础上加一,如:4转化为5
        2.在当前数字的基础上减一,如:4转化为3
        3.将当前数字变成它的平方,如:4转化为16
        你能帮牛牛解决这个问题吗?

输入
给定n,m,分别表示牛牛和牛妹的数字。

输出:
返回最少需要的操作数。

这题这么些行吗,测试用例只通过20%,没想出哪里问题啊,求指点迷经

import java.util.*;
 
 
public class Solution {
    /**
     * 返回最后要输出的答案
     * @param n int整型 表示牛牛的数字
     * @param m int整型 表示牛妹的数字
     * @return int整型
     */
    int summ=0;
    public int solve (int n, int m) {
        // write code here
         
             
     
        sum(m,n);
        return summ;
         
         
         
         
    }
     
    public  void sum (int m,int n) {
         
        if (n==m) {
           
            return;
        }
        else if (Math.abs(n*n-m)<Math.abs(m-n)) {
             
            sum(m, n*n);
            summ++;
        }else {
            summ+=Math.abs(m-n);
            return;
        }
         
         
    }
         
     
}



全部评论

(1) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐