2013-03-10 8 views

Répondre

1

vous devez d'abord attribuer un numéro à chaque lettre:

A = 0; B = 1; C = 2 ....

vous appliquez la fonction aux chiffres que vous obtenez et reconvertir en lettres:

N serait 13, donc 13 * 3 = 39, + 7 = 46 puis mod 26 = 20

reconvertir, 20 = U

Si vous le faites sur toutes les lettres de votre phrase vous aurez la forme cryptée

et ici le code C# pour le faire:

private static string encrypt(string s) 
    { 
     char[] tmp = new char[s.Length]; 
     int i = 0; 

     foreach (char c in s) 
     { 
      tmp[i] = (char)((((c - 'A') * 3 + 7) % 26) + 'A'); 
      i++; 
     } 

     return new string(tmp); 
    } 

et ici votre fonction Décrypter (ok celui-ci est compliqué, mais fonctionne):

private static string decrypt(string s) 
    { 
     string res = s; 
     for (int i = 0; i < 5; i++) 
      res = encrypt(res); 

     return res; 
    } 
+0

merci ... où avez-vous demandé 20 pour obtenir U? c'est exactement ce que je n'ai pas compris – Ris

+0

il suffit d'écrire toutes les lettres de A à Z et d'écrire les nombres (en commençant par 0) devant eux, vous verrez que U en aura 20 devant – ppetrov

Questions connexes