Digitos
A função a seguir recebe como parâmetro um número inteiro N e retorna o número de dígitos de N:
var s = "JavaScript syntax highlighting";
alert(s);
Reescreva a função Digitos tornando-a recursiva.
Não será permitido utilizar variáveis globais, vetores, listas ou qualquer outra estrutura de dados para armazenar o resultado. O protótipo da função deverá, obrigatoriamente, ser:
int Digitos(int N);
O programa deverá conter, além da função recursiva, uma função principal (main) para realização de testes, com o formato de saída de acordo com o exemplo a seguir:
Digite um numero inteiro: 12345
Resultado: 5
Decimal para Binário
Um problema típico em computação consiste em converter um número da sua forma decimal para a forma binária. Por exemplo, o número 12 tem a sua representação binária igual a 1100. A forma mais simples de fazer isso é usando o método das divisões sucessivas: divide-se o número sucessivamente por 2, onde o resto da i-ésima divisão vai ser o dígito i do número binário (da direita para a esquerda).
Por exemplo:
12/2 = 6 resto 0
6/2 = 3 resto 0
3/2 = 1 resto 1
1/2 = 0 resto 1
Resultado: 12 = 1100 (restos tomados de baixo para cima)
Escreva uma função recursiva que, dado um número decimal, imprima a sua representação binária corretamente. O protótipo da função deverá, obrigatoriamente, ser:
void dec2bin(int dec);
Não será permitido utilizar variáveis globais, vetores, listas ou qualquer outra estrutura de dados para armazenar o número em binário, pois este será impresso à medida que for sendo calculado dentro da função.
O programa deverá conter, além da função recursiva, uma função principal (main) para realização de testes, com o formato de saída de acordo com o exemplo a seguir:
Digite um numero inteiro: 34
Resultado: 100010
Potência
Implemente uma função recursiva que, dados dois números inteiros x e n, calcula o valor de x^n.
Não será permitido utilizar variáveis globais, vetores, listas ou qualquer outra estrutura de dados para armazenar o resultado. O protótipo da função deverá, obrigatoriamente, ser:
int mult(int base, int exp);
O programa deverá conter, além da função recursiva, uma função principal (main) para realização de testes, com o formato de saída de acordo com o exemplo a seguir:
Digite a base e o expoente inteiros: 2 8
Resultado: 256
Máximo Divisor Comum (MDC)
Implemente uma função recursiva que, dados dois números inteiros a e b, calcula o Máximo Divisor Comum (MDC) entre eles.
Não será permitido utilizar variáveis globais, vetores, listas ou qualquer outra estrutura de dados para armazenar o resultado. O protótipo da função deverá, obrigatoriamente, ser:
int mdc(int a, int b);
O programa deverá conter, além da função recursiva, uma função principal (main) para realização de testes, com o formato de saída de acordo com o exemplo a seguir:
Digite dois numeros inteiros: 25 10
Resultado: 5