趣味演算法 巧填運算子

2021-07-10 04:52:12 字數 930 閱讀 9078

給定乙個整數陣列,和乙個單獨的數字,在陣列的每乙個元素中間填加 "+"或"-" 使其運算結果等於單獨的數字例如給定的陣列為 ,數字為 9。運算結果為7-2+4=9    

規則1:陣列中元素的位置不能變化。

規則2:如果無法實現則輸出 invalid

舉例:

input:

1 2 3 4 10

1 2 3 4 5

output:

1+2+3+4=10

invalid

想法:使用窮舉法,使用遞迴在每個位置嘗試每個運算子,如果不成立,則需要返回嘗試前的狀態。

程式示例:(給的測試數字中,最後乙個為單獨的結果)

#include using namespace std;

void calc(int arr, int length, int final)

if (isfind)

return;

if (index == length-1)

else

}return;

}if (!isfind)

}if (!isfind)

}if ((index == 0) && (!isfind))

}int main()

; //int arr[2] = ;

//int arr[3] = ;

int arr[4] = ;

//int arr[5] = ;

int length = sizeof(arr)/sizeof(arr[0]);

calc(arr, length-1, arr[length-1]);

cout<> length;

return 0;

}

窮舉演算法(填運算子)

例如 5 5 5 5 5 5,填入適當的運算子使等式相等,1 當填入除號時,右側的數不能為0 2 乘除的運算級別比加減高 1 include2 include 3int main 11 printf 請輸入5個數 12for j 1 j 5 j 13 scanf d num j 14 printf ...

(運算子) 運算子

運算子既可作為一元運算子也可作為二元運算子。備註 unsafe context data guid 00bf87717d88a9fac1afadb796c675da 一元 運算子返回運算元的位址 要求 unsafe 上下文 bool data guid 9efd189df2cfb88799dca08...

JS運算子 算術運算子 比較運算子 賦值運算子

兩邊的變數都是number型別 則是單純的加法運算 當字串出現時 結果是字串型別 字串之後的內容 不論什麼型別 都會被作為字串進行拼接 例子 var num1 10 var num2 20 num num1 num2 var result num1 num2 num1 false console.l...