鑑於這種方法的塔移動,獲得數河內
public static String solve(int n, String start, String middle, String end)
我想返回的動作的次數。我可以在某種程度上與此代碼獲得此:
public static String solve(int n, String start, String middle, String end) {
if (n == 1) {
return Integer.toString(1);
}
return solve(n - 1, start, end, middle) + solve(n - 1, middle, start, end) + 1;
}
但是當我給1個磁盤的回答爲1,當我2磁盤的回答爲111,當我得到3-磁盤迴答爲1111111,4是111111111111111 , 等等。每個字符串中的1的數字代表一個移動,但我不想要1,我想要1,3,7,15等等。我如何改變這段代碼讓我得到後面的數字?
如果你想要的結果設置爲*號的移動*,爲什麼是返回類型的'String'? 'int'不會更好嗎? - 既然你不用'start','middle'和'end'來做什麼,爲什麼他們在那裏? – Andreas