Advertisement
Guest User

Solution

a guest
Jun 26th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.69 KB | None | 0 0
  1. fun find(numbers: IntArray, index: Int = 0, data: String = "") {
  2.     if (index >= numbers.size) {
  3.         if (data.isNotEmpty() && eval(data).compareTo(Result) == 0)
  4.             println("$data = $Result")
  5.     } else {
  6.         val number = numbers[index].toString()
  7.         if (index == 0) {
  8.             find(numbers, 1, number)
  9.             find(numbers, 1, Minus + number)
  10.         } else
  11.             for (operator in Operators)
  12.                 find(numbers, index + 1, data + operator + number)
  13.     }
  14. }
  15.  
  16. fun eval(data: String) = Expression(data).eval()
  17.  
  18. val Numbers = intArrayOf(6, 6, 1, 3, 7, 6, 6)
  19. val Result = BigDecimal("100")
  20. val Operators = arrayOf("+", "-", "/", "*")
  21. val Minus = "-"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement