"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."
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
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