Ir ao conteúdo

Posts recomendados

Postado

então, estou a horas aqui pensando, em como fazer uma funcao em C que retorne o resto de uma divisao sem o %, eu consegui fazer a versão iterativa dela, mas nada q eu tento da certo na versão recursiva, alguem pode me ajudar?

#include <stdio.h>



// versão recursiva

int mod(int a, int b){

    int div = a/b;

    int aux = b--;

    if((b*div) + aux == a){

        return aux;

    } else {

        return mod(a, b);

    }

}



int main(int argc, char const *argv[]){

    int a, b;

    printf("Digite um valor para A: ");

    scanf("%d", &a);

    printf("Digite um valor para B: ");

    scanf("%d", &b);

    printf("Modulo: %i", mod(a, b));

    

    return 0;

}

 

  • Curtir 1
Postado
#include <assert.h>

int resto(int x, int mod)
{
    assert(mod > 0);
    while (x > mod)
        x -= mod;

    return x;
}

int resto_recursiva(int x, int mod)
{
    assert(mod > 0);
    if (x > mod)
        return resto_recursiva(x - mod, mod);
    return x;
}

int main()
{
    assert(resto(10, 3) == 1);
    assert(resto(10, 4) == 2);
    assert(resto(10, 11) == 10); 

    assert(resto_recursiva(10, 3) == 1);
    assert(resto_recursiva(10, 4) == 2);
    assert(resto_recursiva(10, 11) == 10); 
    
    return 0;
}

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Mostrar mais  

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

Mostrar mais  
×
×
  • Criar novo...