Advertisement
Guest User

Untitled

a guest
Jan 12th, 2012
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. #define if_c(x) (x) ?
  2. #define else_c :
  3. #define return_c(x) (x)
  4.  
  5. constexpr int64_t muldiv(int64_t a, int64_t b, int64_t c, unsigned n = 0) {
  6. return(
  7. if_c(a < 0x7FFFFFFF && b < 0x7FFFFFFF)
  8. return_c((a * b) / c)
  9. else_c
  10. if_c(c <= a)
  11. if_c(n != 2)
  12. return_c((a / c) * b + muldiv(b, a % c, c, n + 1))
  13. else_c
  14. return_c(0)
  15. else_c
  16. return_c(muldiv(a, b, c / 2) / 2)
  17. );
  18. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement