最近,被面試到a, b, c, d, ... ,x,一組數中,通過加減法,能否得到某個數的演算法。假設可以在a前面新增『+』或者『-』。
如果只有加減法,那麼自然可以用位運算。比如:
1,2,3,4得到2,那麼可以認為0000表示全是負書,0010表示第三個數是正數。
那麼有:
public class addsumtotarget
int n = nums.length;
int k = 1 << n;
for (int i = 0; i < k; ++i)
if (sum == target)
} return false;
} public static void main(string args) , 6));
system.out.println(addsumto(new int , 2));
system.out.println(addsumto(new int , 11));
}}
但是,近期看到華為有這樣的題目,與上面的題目是類似的,但由於結果集不能用二進位制計算,所以回溯做。
題目:
輸入乙個正整數x,在下面的等式左邊的數字之間新增+號或者-號,使得等式成立。
1 2 3 4 5 6 7 8 9 = x
比如:12-34+5-67+89 = 5
1+23+4-5+6-7-8-9 = 5
請編寫程式,統計滿足輸入整數的所有整數個數。
輸入: 正整數,等式右邊的數字
輸出: 使該等式成立的個數
樣例輸入:5
樣例輸出:21
public class formulation ;
private static char f = ;
private static int n = 0;
public static void wayto(int x)
public static void wayto(int indice, int x)
for (int i = 0; i < 3; ++i)
} private static int check(int x)
while (i < 17) else else
}i += 2;
} sum += op * a;
return sum == x ? 1 : 0;
} public static void main(string args)
}
完成等式 1 2 3 4 5 6 7 8 9 X
有乙個未完成的等式 1 2 3 4 5 6 7 8 9 x 當給出整數n的具體值後,請你在2,3,4,5,6,7,8,9這8個數字的每乙個前面,或插入運算符號 或插入乙個運算符號 或不插入任何運算符號,使等式成立,並統計出能使等式成立的算式總數,若無解,則輸出0。例如 取x為108時,共能寫出15個...
x 的 x 次方等於10,求 x
當 x 的 x 次方為10時,求 x 的值,精確到小數字後9位 過程如下 2 的 2 次方 小於 10 3 的 3 次方 大於 10 因此 x 在 2 到 3 之間。找出整數部分後,需要計算出小數部分,然後把兩部分加到乙個串裡即可 可以以串的形式輸出,也可以轉成浮點數輸出,下面的程式是以串的形式輸出...
求後序遍歷x
題目描述 description 輸入一棵二叉樹的先序和中序遍歷序列,輸出其後序遍歷序列。輸入描述 input description 共兩行,第一行乙個字串,表示樹的先序遍歷,第二行乙個字串,表示樹的中序遍歷。輸出描述 output description 僅一行,表示樹的後序遍歷序列。樣例輸入 ...