Arquivos da categoria: Introdução a Algoritmos

Enésimo termo da sequência Fibonacci sem recursividade em C

O programa a seguir calcula e exibe um elemento da sequência Fibonacci. O programa foi construído sem o uso de recursividade.
O que deixa o código um pouco menos elegante, mas evita certas limitações da recursão frente à valores muito altos.

fib

//================================================================
// Descricao: O programa calcula e mostra o enésimo termo
//            da sequência Fibonacci sem uso de recursividade.
//================================================================

// Bibliotecas
#include <stdio.h>
#include <stdlib.h>

// Protótipo da função fibonacci
int fibonacci(int n);

// Função Principal
int main(int argc, char** argv) {
	int n;

    // Lê a posição do termo
    printf("Digite a posicao: ");
    scanf("%d", &n);

    // Imprime o termo
    printf("O termo: %d\n", fibonacci(n));

    system("pause");
    return 0;
}

// Função Fibonacci
int fibonacci(int n) {
	int anterior = 0,
		proximo = 1,
		aux,
  		i;

	// Se for o primeiro número da lista
	if(n == 1) {
		return 0;
	// Se for o segundo número da lista
 	} else if(n == 2) {
 		return 1;
	// Se for um número a partir da terceira posição
  	} else {
  		// Calcula os valores dois a dois até chegar na posição requerida
		for(i = 3; i <= n; i++) {
			aux = proximo;
			proximo = anterior + proximo;
			anterior = aux;
		}
		return proximo;
  	}
}

Gerador de Números Primos – C

primos
/*
 * Gera números primos a partir de um limite superior estabelecido.
 *
 */
#include <stdio.h>
#include <stdlib.h>

int main() {
    int n, nMax, i, j, totalDivisores;

    // Recebe o limite para exibição dos números primos
    printf("Digite o limite superior para os numeros primos(Minimo 2): ");
    scanf("%d", &nMax);

    // Verifica se o limite superior é um número válido
    // O menor número primo é 2
    while(nMax < 2) {
        system("cls");
        printf("Digite o limite superior para os numeros primos(Minimo 2): ");
        scanf("%d", &nMax);
    }

    // Verifica se o número é primo e imprime o valor na tela
    for(i = 0; i <= nMax; i++) {
        totalDivisores = 0;
        // Conta os divisores para verificar se o valor é primo
        for(j = 1; j <= i; j++) {
            if(i % j == 0) {
                totalDivisores++;
            }
        }
        // Se o total de divisores é dois, imprime o primo com formatação de 4 casas
        if(totalDivisores == 2) {
            printf("%4d ", i);
        }
    }

    printf("n");
    system("pause");
    return 0;
}

Substring – Ruby

substring
#================================================================
# Descrição: O programa retorna uma string a partir de um dado
#            intervalo: [start, end[
#================================================================

# Lê a url e remove o "enter" do fim da string com o método chomp
print "Digite a string: "
str = gets().chomp
# Lê a posição inicial
print "Digite a posicao inicial: "
start = gets().to_i
# Lê a posição final
print "Digite a posicao final: "
ended = gets().to_i

# Gera substring
sub = str[start...ended]

# Imprime a substring
print "A substring: " + sub + "n"

system("pause");

String Reverse – Ruby

String Reverse
#================================================================
# Descrição: O programa inverte uma url e mostra o resultado.
#================================================================

# Lê a url e remove o "enter" do fim da string com o método chomp
print "Digite a url: "
str = gets().chomp

# Inverte a url
str.reverse!

# Imprime a url invertida
print "A url resultante: " + str + "n"

system("pause")

Fórmula de Bháskara – Ruby

bhask

#================================================================
# Descricao: O programa calcula e mostra o resultado de uma
# 			 equação do segundo grau.
#================================================================

# Lê os termos da equação e os converte em número reais
puts "Digite o valor do termo a: "
a = gets.to_f()
puts "Digite o valor do termo b: "
b = gets.to_f()
puts "Digite o valor do termo c: "
c = gets.to_f()

# Calcula e verifica se delta possui raíz real
delta = b*b - 4*a*c
if(delta < 0)
	puts "A equacao nao possui raizes reais"
else
	# Calcula o valor de x1 e x2
	x1 = (-b + Math.sqrt(delta)) / (2*a)
	x2 = (-b - Math.sqrt(delta)) / (2*a)

	# Imprime os restultados
	puts "O valor de x1: " + x1.to_s
	puts "O valor de x2: " + x2.to_s
end

Enésimo termo da sequência Fibonacci – Ruby

fibrec
#================================================================
# Descrição: O programa calcula e imprime o enésimo termo
#            da sequência Fibonacci, de forma recursiva
#================================================================

# Função recursiva do fibonacci
def fibonacci(n)
	if(n == 1)
		return 0
	elsif(n == 2)
		return 1
	else
		return fibonacci(n-1) + fibonacci(n-2)
	end
end

# Lê um valor e converte em um número inteiro
puts "Digite a posicao: "
n = gets.to_i()

# Gera o termo da sequência
fib = fibonacci(n)

#Converte os números em texto e imprime o termo
puts "O termo: " + fib.to_s

Fatorial com Recursividade – Ruby

Administrador Prompt de Comando

#================================================================
# Descrição: Mostra o fatorial de um dado número recursivamente
#================================================================

# Função recursiva do fatorial
def fatorial(n)
	if(n > 1)
		return n * fatorial(n-1)
	else
		return 1
	end
end

# Lê um valor e converte em um número inteiro
puts "Digite um numero: "
n = gets.to_i()

# Calcula o fatorial
fat = fatorial(n)

#Converte os números em texto e imprime o fatorial do número	
puts "Fatorial de " + n.to_s + ": " + fat.to_s

Fatorial sem Recursividade – Ruby

Administrador Prompt de Comando
#================================================================
# Descrição: Mostra o fatorial de um dado número sem
# 			 recursividade
#================================================================

# Lê um valor e converte em um número inteiro
puts "Digite um numero: "
n = gets.to_i()

# Calcula o fatorial
fatorial = 1
for i in 1..n
	fatorial = fatorial * i
end

#Converte os números em texto e imprime o fatorial do número
puts "Fatorial de " + n.to_s + ": " + fatorial.to_s

Fatorial Sem Recursividade – C

fat
//================================================================
// Descrição: Mostra o fatorial de um dado número sem
//            recursividade
//================================================================

// Libs
#include <stdio.h>
#include <stdlib.h>

// Função main
// Main Function
int main(int argc, char** argv)
{
 int n, fatorial, i;

 printf("Digite o numero: ");
 scanf("%d", &n);

 // Calcula o fatorial
 fatorial = 1;
 for(i = n; i > 0; i--) {
    fatorial *= i;
 }

 printf("Fatorial de %d: %dn", n, fatorial);

 system("pause");
 return 0;
}

Fatorial Com Recursividade – C

fatrec
//================================================================
// Descrição: Mostra o fatorial de um dado número com
//            recursividade
//================================================================

// Protótipo da função fatorial
int fatorial(int n);

// Libs
#include
#include

// Função main
// Main Function
int main(int argc, char** argv)
{
 int n, i;

 printf("Digite o numero: ");
 scanf("%d", &n);

 printf("Fatorial de %d: %dn", n, fatorial(n));

 system("pause");
 return 0;
}

// Função do fatorial
int fatorial(int n) {
    if(n == 0) {
        return 1;
    } else {
        return n * fatorial(n-1);
    }
}