Yeah, North Indian languages are way harder than that. You have to memorize every single number from 1 to 100. There are no reliable patterns that apply across the board.
For example, here's the one I find perhaps the most reliable in Hindi and Urdu: When the second digit in a double-digit number is 9, then the word for that number is [ʊn]- plus the next number (i.e. next number minus one). However, there are often small phonological changes affecting the pronunciation of the next number in these compounds, e.g. 'twenty' is [bis] but 'nineteen' is [ʊnˈnis], not *[ʊnˈbis]. In addition, 'ninety-nine' is an exception: [nɪˈnãʋe] 'ninety-nine', [ek sɔ] 'one hundred'.