Jump to content

Duvida - termo da funcão


biXtre
 Share

Recommended Posts

Isto faz parte de um trabalho na minha cadeira de Programação no meu curso de Eng do Ambiente.

Já consegui fazer o projecto todo excepto este passo que não sei como escrever.

FUNÇÃO:

Considere a seguinte sucessão de números naturais:

an = 3n + 1, se n é par

ou

an = n^2, se n é impar

para todos os valores de n naturais positivos.

9 - É termo?

Escreve no ecrã SIM, se n (o número introduzido na opção 1) é um termo da sucessão, ou seja, se existe algum natural i para o qual ai = n  ou escreve NAO, no caso contrário.

Sugeriram-me para fazer isto através da inversa, mas não sei como aplicar isso.

Link to comment
Share on other sites

Sqrt  é a raiz quadrada.

@lesiano16

podes explicar como chegas-te ao "i = (n-1) /3" e ao "sqrt(n)".

o meu projecto de programação tbm é muito parecido com esse e por acaso tbm estou 'encalhado' nessa mesma parte.

mas prefiro primeiro perceber como se chega a esse pseudocódigo, antes de programa-lo.

Link to comment
Share on other sites

Fazer pela inversa é muito mais rapido e directo, outra forma seria criares a lista de sucessão para numeros naturais pares e inpares ate ao teu n e dps verificar se este existe dentro da lista. Agora imagina para um n = 1902302103021, ias demorar muito tempo a criar a lista quando comparado com fazer 2 operações aritméticas que é o caso da inversa.

Link to comment
Share on other sites

Sqrt  é a raiz quadrada.

@lesiano16

podes explicar como chegas-te ao "i = (n-1) /3" e ao "sqrt(n)".

o meu projecto de programação tbm é muito parecido com esse e por acaso tbm estou 'encalhado' nessa mesma parte.

mas prefiro primeiro perceber como se chega a esse pseudocódigo, antes de programa-lo.

Fez a inversa.

A inversa de (n^2) é raiz de n. E a inversa de (3n+1) é (n-1)/3

Link to comment
Share on other sites

Sqrt  é a raiz quadrada.

@lesiano16

podes explicar como chegas-te ao "i = (n-1) /3" e ao "sqrt(n)".

o meu projecto de programação tbm é muito parecido com esse e por acaso tbm estou 'encalhado' nessa mesma parte.

mas prefiro primeiro perceber como se chega a esse pseudocódigo, antes de programa-lo.

tu tens

1)ai = 3i+1 para i pares e

2)ai = i^2 para i impares,

queres saber dado um n se existe um i que atraves de 1) ou 2) csg obter n.

entao é o mesmo que dizer n = 3i+1 ou n = i^2 , queres saber se existe i entao fazes as 1) e 2) em ordem a i, ou seja,

a) i = (n-1)/3 ou b)i = sqrt(n) , para alem disto tens que verificar se o i para a) é par ou se o i para 😉 é impar

Link to comment
Share on other sites

if (i=(n-1 && i%2==0))

printf("SIM");

else if (sqrt(n && i%2!=0))

    return printf("SIM");

else

    return printf("NAO");

mas assim está separado o par do impar logo pode-se usar && ou não?

if (i=(n-1 && i%2==0))  isso ta mal nao podes fazer igualdades i= , o if esta espera de uma condição que tenha o valor true or false,

ou seja if (((n-1)/3) % 2) == 0) assim ja podes.

if (sqrt(n && i%2!=0)) tmb ta mal o que queres dizer é iif((sqrt (n) % 2) != 0)  tas garantir que ele nao é par, mas nao te esquecas que tens que agora verificar se ele é um numero natural, ou seja ,if((sqrt (n) % 2) != 0) && sqrt (n)  é um numero natural)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.