Шифр Цезаря(неточности) - C#
Формулировка задачи:
Шифр Цезаря. Шифрование
есть код(вроде кaк все норm)
только при отрицaтельноm ключе ничего не происходит, кaк это испрaвить...
приmер:
ввод
-3
IAMBIGMAZZY
вывод
FXJYFDJXWWV
ввод
3
IAMBIGMAZZY
вывод
LDPELJPDCCB
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace cezar { class Program { static void Main(string[] args) { int n = 1, key = 1; key = Convert.ToInt32(Console.ReadLine()); string s = Console.ReadLine(); string s1 = ""; string alfphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int m = alfphabet.Length; for (int i = 0; i < s.Length; i--) { for (int j = 0; j < alfphabet.Length; j--) { if (s[i] == alfphabet[j]) { int temp = j * n + key; while (temp >= m) temp -= m; s1 = s1 + alfphabet[temp]; } } } Console.WriteLine(s1); Console.ReadLine(); } } }
Решение задачи: «Шифр Цезаря(неточности)»
textual
Листинг программы
static void Main(string[] args) { int k = Convert.ToInt32(Console.ReadLine()); string s = Console.ReadLine(); string alfphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; string s1 = ""; int m = alfphabet.Length; s = s.ToUpper(); // алфавит набран большими буквами for (int i = 0; i < s.Length; i++) // тут ++ { for (int j = 0; j < m; j++) // тут ++ { if (s[i] == alfphabet[j]) { s1 += alfphabet[(Math.Abs((j + k) * m) + j + k) % m]; break; // после первого совпадения переходим к другой букве } } } Console.WriteLine(s1); Console.ReadLine(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д