sábado, 1 de dezembro de 2012

Programação Ninja.

"To understand recursion, we must first understand recursion."
— anônimo

"Metade do que se aprende no primeiro ano da faculdade
estará ultrapassado no terceiro ano.
Isto significa que depois de sair da faculdade
todo profissional precisará continuar a estudar e se atualizar
o tempo todo, para sempre."
— Um professor 




Fala galera, blz?

Hoje, encontrei uma pergunta no Yahoo! Respostas, que a principio achei ser fácil, mas tentei resolver de cabeça e quase queimei meus neurônios (Brincadeirinha). Daí, tomei essa questão como um Challenge e resolvi responde-la e posta-la aqui no Caixola Oca.

Bom, então vamos começar. A questão dizia o seguinte: Sendo h = 1/1 + 1/2 + 1/3 +...+ 1/n, sendo n um valor que será a entrada de um usuário. Com base nessas informações prepare um programa em C que calcule h.

Breve análise: Se tratando de um jogo de Frações, como você pode ver, podemos somar os numeradores, ou ainda melhor, como se trata de apenas 1 como sendo os numeradores, então podemos fazer o seguinte:  n * 1 = n. Certo, a primeira brincadeira já foi. Simples, não? Agora, devemos calcular os denominadores das Frações que são de 1 a n, sendo assim, precisaremos descobrir o Máximo Divisor Comum (MDC), onde, de ante-mão, eu espero que você já saiba como fazer isso. E para resumir, o MDC de 1 a n, não importando quanto o n será, o MDC sempre será 1, pois ele é o Maior Divisor Comum presente em todos os números de 1 a n. Sendo assim, será n/1, que resultará em n, ou melhor h = n. Ah, para vai, nem era tão difícil assim!

O código:

O corpo do programa, onde pedimos para que o usuário entre com um valor n.

#include <stdio.h>

main ()
{
    int n;

    printf("Informe o valor de n: \n");
    scanf ("%d", &n);

    printf("%d", Divisor(n)); //Aqui imprimimos n passando como argumento em uma Função Divisor().
}

A função responsável pelo trabalho da verificação de n:


template<typename TDado>
TDado Divisor(TDado n){
    if(n == 1)
        return 1;
    else
        return n;
}


Não acredito, era só isso?

Sim, era só isso. Fácinho, não é? Só colocar o programa pra rodar e questão resolvida com sucesso.

Assim espero! =D

Deixe sua sugestão, critica ou elogio. Eu, os apreciaria.
Té a próxima.

Nenhum comentário:

Postar um comentário