[Off] Desafio de lуgica
#1

Este desafio й meio complicado, exige bastante raciocнnio lуgico.


pawn Код:
new maximo1 = 15;
    new maximo2 = 20;
   
    new intervencao1 = 5;
    new intervencao2 = 10;
   
    new resultadofinal = 0;
   
    new falhar = 1;
   
    for(new i = maximo1 ; i != -1 && falhar; i--) {

        for(new j; j != maximo2; j++) {
       
            if( intervencao2 == j && intervencao1 == i) { falhar = 0; break; }
           
            resultadofinal += 3;
        }
       
        resultadofinal += 4;
    }

Tente CONVERTER estes cуdigo para que vocк arrume o resultadofinal SEM USAR loops

Eu tentei em outro projeto e consegui uma soluзгo provissуria, mas falhou em alguns falores. Precisa testar bem como funciona.


Consegue?
Reply
#2

Nгo sei usar goto muito bem, mas acho que assim funciona:

pawn Код:
new maximo1 = 15;
new maximo2 = 20;

new intervencao1 = 5;
new intervencao2 = 10;
   
new resultadofinal = 0;
   
new falhar = 1;
 
new i;

Ponto1:
if (i != maximo1 && i != falhar)
{
    ++ i;
   
    Ponto2:
    if ( j != maximo2)
    {
        ++ j;
       
        if( intervencao2 == j && intervencao1 == i)
        {
            falhar = 0;
            break;
        }
           
        resultadofinal += 3;
        goto Ponto2;
    }  
   
    resultadofinal += 4;
    goto Ponto1;
}
Reply
#3

Quote:
Originally Posted by Juniiro3
Посмотреть сообщение
Nгo sei usar goto muito bem, mas acho que assim funciona:
goto й uma forma de loop, afinal ele continua girando pelo cуdigo (fazendo loop).
Reply
#4

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
goto й uma forma de loop, afinal ele continua girando pelo cуdigo (fazendo loop).
ah '-' Achei que loop fosse sу while e for
Reply
#5

Do, while, for, goto, #emit JUMP, funзхes recursivas. Й tudo mйtodo laзos de circuito (loops)

Falo de calculo mesmo. Multiplicaзгo, divisгo. Mais, menos, etc
Reply
#6

pawn Код:
main()
{
    new maximo1 = 15;
    new maximo2 = 20;

    new intervencao1 = 5;
    new intervencao2 = 10;

    new resultadofinal = 0;

    new falhar = 1;

    resultadofinal += 4*maximo2-9;
    if( !(intervencao2 ==  intervencao2 ) && !(intervencao1 == intervencao1) && falhar)
        falhar = 0;
    else
        resultadofinal += 3*14*maximo1-61;
    printf("%d", resultadofinal);
}
Reply
#7

Errado Dan. Vocк nгo tem que se basear apenas nos valores atuais, mas sim nos VALORES das Variбveis, porque se mudar elas, todo seu calculo vai por бgua abaixo.
Reply
#8

PARABЙNS, PRA VOCК.... NESSA DATA.... BLA BLA....
Com quem serб... com quem serб... bla bla
<18 aninhos.3
(toda aquela frescura)

@topic


Na verdade recursividade nгo й considerado uma forma de funзгo iterativa 'com loops', hehe vocк devia especificar no cabeзalho que nгo pode usar recursividade.

Vou tentar fazer.
Reply
#9

@Will
me act skype, o meu pc bugou deletou alguns contatos(eu acho) :$
pawn Код:
main()
{
    new maximo1 = 15;
    new maximo2 = 20;

    new intervencao1 = 5;
    new intervencao2 = 10;

    new resultadofinal = 0;

    new falhar = 1;

    resultadofinal = (((3 * maximo2-intervencao2)+(4 * maximo1-intervencao1)))*6+intervencao2, falhar = 0;
    falhar = falhar ? 1 : 0;
    printf("Resultado: %d, Falhas: %d", resultadofinal, falhar);
}
Reply
#10

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
PARABЙNS, PRA VOCК.... NESSA DATA.... BLA BLA....
Com quem serб... com quem serб... bla bla
<18 aninhos.3
(toda aquela frescura)

@topic


Na verdade recursividade nгo й considerado uma forma de funзгo iterativa 'com loops', hehe vocк devia especificar no cabeзalho que nгo pode usar recursividade.

Vou tentar fazer.
Valeu Will


Sim, й verdade. Tambйm nгo pode usar recursividade. Sу cбlculos



Dan! Continua errado. Testa melhor isto, a principal tб retornando 670 +- a tua 640. E com outras variбveis retorna valores mais errados ainda
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)