View difference between Paste ID: sEys3Pxn and fdpH1nTX
SHOW: | | - or go back to the newest paste.
1
fun main(args: Array<String>) {
2
    find(Numbers)
3
}
4
5
fun find(numbers: IntArray, index: Int = 0, data: String = "") {
6
    if (index >= numbers.size) {
7
        if (data.isNotEmpty() && eval(data).compareTo(Result) == 0)
8
            println("$data = $Result")
9
    } else {
10
        val number = numbers[index].toString()
11
        if (index == 0) {
12
            find(numbers, 1, number)
13
            find(numbers, 1, Minus + number)
14
        } else
15
            for (operator in Operators)
16
                find(numbers, index + 1, data + operator + number)
17
    }
18
}
19
20
fun eval(data: String) = Expression(data).eval()
21
22
val Numbers = intArrayOf(6, 6, 1, 3, 7, 6, 6)
23
val Result = BigDecimal("100")
24
val Operators = arrayOf("+", "-", "/", "*")
25
val Minus = "-"