Gửi bài giải

Điểm: 12,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Julius Caesar bảo vệ các thông tin quan trọng bằng mã hóa mật mã. Mật mã của Caesar được thực hiện bằng cách dịch chuyển các ký tự chữ cái sang phải 𝑘 lần. Nếu như ký tự đó vượt quá ký tự cuối cùng của bảng chữ cái thì nó được chuyển lên đầu. Ví dụ với 𝑘 = 3, các chữ cái 𝑤, 𝑥, 𝑦, 𝑧 được dịch chuyển thành 𝑧, 𝑎, 𝑏, c.

Yêu cầu: Cho xâu 𝑠 và số nguyên dương 𝑘, hãy mã hóa xâu 𝑠 bằng cách dùng mật mã của Caesar. Lưu ý: mật mã của Caesar chỉ mã hóa các ký tự chữ cái.

Input:

  • Dòng 1: Ghi xâu 𝑠 ~1 \le length(s) \le 1000~
  • Dòng 2: Ghi số nguyên dương ~𝑘~ (~0 \le 𝑘 \le 10000~)

(Dữ liệu đầu vào luôn đảm bảo bài toán có nghiệm)

Output:

  • Ghi ra xâu 𝑠 sau khi đã mã hóa

Example:

Input:

middle-Outz
2

Output:

okffng-Qwvb

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    Shinoz  đã bình luận lúc 17, Tháng 8, 2023, 4:01

    Solution by Shinoz (Pascal)

    Vì solution chủ yếu cho mọi người đọc và hiểu bài nên code mình cho chắc chắn sẽ lỗi

    Nhưng chỉ cần đọc 1-2 lần là hiểu và việc sửa code rất dễ dàng, việc này không tốn thời gian đâu!


    Vì k có thể > 26 nên ta cứ việc lấy k mod 26 là được.

    Xử lí (for):

    Nếu s[i] là kí tự chữ (upcase(s[i]) in ['A'..'Z'])

    -> lấy biến t = ord(s[i]) + k;

    -> kiểm tra nếu (t > 90 and t < 97) hoặc (t > 122)

    (122, 90, 97 lần lượt tương ứng với các chữ cái z, Z, a trong bảng mã ASCII)

    -> Nếu đúng: dec(t,26) -> st:=st + chr(t); Ngược lại: st:=st + chr(t);

    Ngược lại: st:=st + chr(t); (không phải kí tự chữ nên ta không cần phải xử lí)

    Việc còn lại chúng ta chỉ cần in ra kết quả là st là được.


    WA Pascal code here


  • -1
    anhquanphan_2212  đã bình luận lúc 16, Tháng 8, 2023, 3:15 chỉnh sửa

    lm mãi cứ sai chỗ chữ z:)


    • -3
      Shinoz  đã bình luận lúc 16, Tháng 8, 2023, 8:07

      cần viết tớ solution k cậu?


      • 2
        anhquanphan_2212  đã bình luận lúc 17, Tháng 8, 2023, 2:12

        cho mik với


        • -3
          Shinoz  đã bình luận lúc 17, Tháng 8, 2023, 4:02

          đã có solution


  • -6
    Shinoz  đã bình luận lúc 15, Tháng 8, 2023, 16:44

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.