我有这个方法:
//ternary can only have: 0,1,2
public int getNumber(int[] ternary){
int lt = ternary.length;
int number = 0;
for(int i = 0; i < lt; i++){
int idx = ternary[i];
number += (idx * Math.pow(-3, i));
}
return number;
}我需要一个方法来做相反的事情:
public int[] getArray(int n){
//I need to figure out how to find the size of array
//And how to invert that equation.
}发布于 2016-11-08 01:22:25
我相信这是一个家庭作业问题,所以你必须自己解决它。
这里有个提示。
让p = n / 9和q = n % 9。请注意n = p * 9 + q。
现在,如果是q < 3,就让t = q,如果是q >= 3,就让q - 9。如果是q < 3,也是s = p;如果是q >= 3,则是p + 1。
再次注意n = s * 9 + t。
t生成值0、1、2、-3、-2、-1、-6、-5、-4,这些值很容易映射到数字00 ... 22。这给了你两个最后的数字。剩下的第一个数字就是s * 9。
我希望你能自己从这里拿到它。
https://stackoverflow.com/questions/40468946
复制相似问题