题意:
一天,牛妹找牛牛做一个游戏,牛妹给牛牛写了一个数字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) 回帖