```
val r = (a + b - 1) / b
```

For example:

```
scala> for(a <- 1 to 10; b <- 1 to a) println("a: "+a+"\tb: "+b+"\tr: "+((a+b-1)/b))
a: 1 b: 1 r: 1
a: 2 b: 1 r: 2
a: 2 b: 2 r: 1
a: 3 b: 1 r: 3
a: 3 b: 2 r: 2
a: 3 b: 3 r: 1
a: 4 b: 1 r: 4
a: 4 b: 2 r: 2
a: 4 b: 3 r: 2
a: 4 b: 4 r: 1
a: 5 b: 1 r: 5
a: 5 b: 2 r: 3
a: 5 b: 3 r: 2
a: 5 b: 4 r: 2
a: 5 b: 5 r: 1
a: 6 b: 1 r: 6
a: 6 b: 2 r: 3
a: 6 b: 3 r: 2
a: 6 b: 4 r: 2
a: 6 b: 5 r: 2
a: 6 b: 6 r: 1
a: 7 b: 1 r: 7
a: 7 b: 2 r: 4
a: 7 b: 3 r: 3
a: 7 b: 4 r: 2
a: 7 b: 5 r: 2
a: 7 b: 6 r: 2
a: 7 b: 7 r: 1
a: 8 b: 1 r: 8
a: 8 b: 2 r: 4
a: 8 b: 3 r: 3
a: 8 b: 4 r: 2
a: 8 b: 5 r: 2
a: 8 b: 6 r: 2
a: 8 b: 7 r: 2
a: 8 b: 8 r: 1
a: 9 b: 1 r: 9
a: 9 b: 2 r: 5
a: 9 b: 3 r: 3
a: 9 b: 4 r: 3
a: 9 b: 5 r: 2
a: 9 b: 6 r: 2
a: 9 b: 7 r: 2
a: 9 b: 8 r: 2
a: 9 b: 9 r: 1
a: 10 b: 1 r: 10
a: 10 b: 2 r: 5
a: 10 b: 3 r: 4
a: 10 b: 4 r: 3
a: 10 b: 5 r: 2
a: 10 b: 6 r: 2
a: 10 b: 7 r: 2
a: 10 b: 8 r: 2
a: 10 b: 9 r: 2
a: 10 b: 10 r: 1
```

This does assume `a`

and `b`

are positive. If either are negative, it depends on whether the division is symmetric or floored (modern languages and platforms are symmetric), and the signal of `a`

and `b`

.

If `a*b >= 0`

, then the formula works as given. If the division is symmetric and `a*b < 0`

, then `a / b`

gives the correct answer.

lotof the time, I think you're going to slow things down with tests that aren't going to be true most of the time, and you'll have to do the "long" work anyway.