Jump to content
sulea

decriptare [usor]

Recommended Posts

se da urmatoarea functie cu care s-a criptat un text.

function cript

for i de la 1 la lungime_text-1

sir=sir+3

sir[i+1]=sir[i+1]-5

end for

sir=sir+i

end function cript

avem outputul:

dqt+fcpxmecl_sp_rc

care a fost textul initial care s-a criptat?

(este vorba de o echipa de fotbal mereu 'la moda')

trimiteti raspunsurile prin pm

Link to comment
Share on other sites

in PM am trimis cu tp la final... acum mi-am dat seama ca ar trebui sa fie tV

ok...hai sa vedem cum functioneaza din cate am inteles:

primul caracter a fost incrementat cu 3 si s-a obtinut:

d => d-3 = a

urmatoarele pana la penultimul au fost incrementate cu 3 si decrementate cu 5, deci decrementate cu 2 si s-a obtinut:

q => q+2 = s

t => t+2 = v

+ => ++2 = -

f => f+2 = h

c => c+2 = e

p => p+2 = r

x => x+2 = z

m => m+2 = o

e => e+2 = g

c => c+2 = e

l => l+2 = n

_ => _+2 = a

s => s+2 = u

p => p+2 = r

_ => _+2 = a

r => r+2 = t

Ultimul caracter e decrementat cu 5 si incrementat cu 18 deci + 13

c => c-13 = V

deci rezultatul ar trebui sa fie "asv-herzogenauratV" - ceea ce nu are nici o logica

Asta in cazul in care for-ul e cel din pseudocod, nu cel din C cu strict <

Link to comment
Share on other sites

sulea.php


<?php
function sulea($s){
for($i=0; $i<strlen($s); $i++){
$s[$i]=chr(ord($s[$i])+3);
if($i<strlen($s)-1)
$s[$i+1]=chr(ord($s[$i+1])-5);
}
return $s;
}
function unsulea($s){
$len=strlen($s);
for($i=1; $i<$len-1; $i++){
$s[$i]=chr(ord($s[$i])+2);
}
$s[0]=chr(ord($s[0])-3);
$s[$len-1]=chr(ord($s[$len-1])+2);
return $s;
}
echo sulea("steaua");
echo "<br>";
echo unsulea("vrc_s_");
echo "<br>";
echo unsulea("dqt+fcpxmecl_sp_rc");
//echo unsulea(sulea("Ana are mere."));
?>
<!--
a b c d
+3 -5
+3 -5
+3 -5
+3 -5
-->

Link to comment
Share on other sites

function cript

for i de la 1 la lungime_text-1

sir=sir+3

sir[i+1]=sir[i+1]-5

end for

sir=sir+i

end function cript

sulea.php


<?php
function sulea($s){
for($i=0; $i<strlen($s); $i++){
$s[$i]=chr(ord($s[$i])+3);
if($i<strlen($s)-1)
$s[$i+1]=chr(ord($s[$i+1])-5);
}
return $s;
}
function unsulea($s){
$len=strlen($s);
for($i=1; $i<$len-1; $i++){
$s[$i]=chr(ord($s[$i])+2);
}
$s[0]=chr(ord($s[0])-3);
$s[$len-1]=chr(ord($s[$len-1])+2);
return $s;
}
...
?>

@3348399: e ok ce ai scris tu, doar ca iti lipseste partea cu modificarea ultimului caracter ;)

Link to comment
Share on other sites

pai i-ul parca merge pana la length-1, sau ma insel?

oricum, eu inca astept raspunsuri :)

ok...nu stiu de ce aveam impresia ca atunci cand se iese din for-ul din pseudocod i e mai mare decat marginea superioara a intervalului

In cazul asta ultimele doua caractere sunt r + 2 - 17 = c

si c + 5 = h

raspunsul: asv-herzogenaurach

Link to comment
Share on other sites

ok...nu stiu de ce aveam impresia ca atunci cand se iese din for-ul din pseudocod i e mai mare decat marginea superioara a intervalului

ai gandit bine, insa la for-uri nu se depasesc limitele (cel putin in pascal).

am transformat pseudocodul in limbaj pascal, si am scris si instructiunile de decriptare.:

program test;
uses crt;
var i:integer;
sir:string;

begin
clrscr;
readln(sir);

// criptarea :
for i:=1 to length(sir)-1 do begin
sir[i]:=chr(ord(sir[i])+3);
sir[i+1]:=chr(ord(sir[i+1])-5);
end;
sir[i]:=chr(ord(sir[i])+i);
writeln;
writeln('textul criptat este: ',sir);
writeln('i-ul la iesirea din for este: ',i);
writeln;

//decriptarea
sir[i]:=chr(ord(sir[i])-i);
for i:=length(sir)-1 downto 1 do begin
sir[i+1]:=chr(ord(sir[i+1])+5);
sir[i]:=chr(ord(sir[i])-3);
end;
writeln('textul decriptat este: ',sir);
writeln('i-ul la iesirea din for este: ',i);
writeln;

end.

cine poate sa-l transforme in c ?

referitor la challenge, felicitari tuturor participantilor.

+rep lui totti93 pt ca a fost primul care a raspuns corect

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...