Passo ajuda!

4 respostas
A

Alguém daria um help http://acm.uva.es/p/v8/846.html
Não consigo entender o algoritmo…ou o calculo…
Se alguém ja tiver resolvido…

4 Respostas

L

Primeira entrada:

45 48

o intuito do problema é vc ir de 45 a 48 com a menor quantidade de passos, sendo que o primeiro e o último passo precisa ser 1. O próximo passo pode ser 1 maior, 1 menor, ou igual ao anterior.

45, dá o primeiro passo que tem que ser 1, fica 46

46, o próximo passo pode ser 1 ou 2, mas se vc der um passo de 2, vai chegar no 48, mas lembre-se que o último passo precisa ser 1, então vc só pode andar 1, dai fica 47

47, mais 1, 48

Total de passos: 3

a outra entrada: 45 49

45, primeiro passo precisa ser 1, dai fica 46

46, o próximo passo pode ser 1 ou 2. Nesse caso escolheremos 2, assim chegaremos mais rápido, dai fica 48

48, aqui o passo pode ser 1,2,3, como o último passo precisa ser 1, vc escolhe 1, e chega a 49

Total de passos: 3

Conseguiu pegar o espírito da coisa ou nem?

A

AAAAAAHHHH…então eu entendi certo…

Eh que eu via a saida 3 e viajava, não entendi que era o número de passo…pensei que era o valor…

Mas vem ca, então sempre serão 3 passos??? O incremento do próximo passo tem que ser obrigatóriamente 1 ?

Blz cara…valew

L

zopo:
AAAAAAHHHH…então eu entendi certo…

Eh que eu via a saida 3 e viajava, não entendi que era o número de passo…pensei que era o valor…

Mas vem ca, então sempre serão 3 passos??? O incremento do próximo passo tem que ser obrigatóriamente 1 ?

Blz cara…valew

Não, não será sempre que serão 3 passos não!

Exato, o próximo passo pode ser 1 maior que o anterior, 1 menor que o anterior ou igual ao anterior.

de 45 a 50 por exemplo fica

45 + 1 = 46
46 + 2 = 48

*aqui o valor poderia ir para 3(1 maior que o anterior 2), pra 1(um menor que o anterior 2), ou ficar 2 mesmo. Se for 3 passa de 50, se for 2 chega a 50 certinho, porem o último passo precisa ser 1, então nesse caso você precisa escolher o passo de tamanho 1

48 + 1 = 49
49 + 1 = 50

Aqui foram 4 passos.

Eu jah resolvi esse problema uma vez, não vou colocar a solução aqui porque não quero estragar a sua diversão…hehehe…mas se você quiser eu posso mandar. Mas vale a pena tentar…é legal! :smiley:

A

Puts cara…
manda a resposta ae…ja me quebrei aqui e não consegui chegar…rs…

O mais perto que cheguei foi isso

int passo = 1;

int conta_passos=0;

private void passos(int valor1, int valor2)

{

while ((valor1 + passo) &lt= valor2)

{

if ((valor1 + passo) == valor2 && (valor1 + passo + 1 == valor2))

{

valor1=valor2;

conta_passos = 3;

}

else

{

if (valor1 + passo + 2 == valor2)

{

passo++;

conta_passos++;

}

else

{

passo=passo+2;

conta_passos++;

}

}

}

Console.WriteLine(conta_passos+1);

}

mande ae…cansei ja…rs
E vAlEw

Criado 18 de março de 2007
Ultima resposta 18 de mar. de 2007
Respostas 4
Participantes 2