Skip to content
This repository has been archived by the owner on Jul 6, 2024. It is now read-only.

Latest commit

 

History

History

introducao

Laboratório de Algoritmos e Estruturas de Dados 1

Descrição dos exercícios da etapa de introdução/revisão da disciplina

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