Como obter números aleatórios com o gerador errado

Pergunta: Suponha que você tenha um gerador de números aleatórios randn () que retorne um número aleatório distribuído uniformemente entre 0 e n-1. Dado qualquer número m, escreva um gerador de números aleatórios que retorne um número aleatório distribuído uniformemente entre 0 e m-

Minha resposta

-(int)randm() {
    int k=1;
    while (k*n < m) {
        ++k;
    }
    int x = 0;
    for (int i=0; i<k; ++i) {
        x += randn();
    }
    if (x < m) {
        return x;
    } else {
        return randm();
    }
}

Isso está correto?

questionAnswers(4)

yourAnswerToTheQuestion