Шифр Цезаря(неточности) - 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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д