Trang chủ Tin Học Lớp 8 Trước công nguyên, nhà quân sự người La Mã Julius Ceasar đã nghĩ ra phương pháp mã hóa một bản...
Câu hỏi :

Trước công nguyên, nhà quân sự người La Mã Julius Ceasar đã nghĩ ra phương pháp mã hóa một bản tin như sau: thay thế mỗi chữ trong bản tin bằng chữ đứng sau nókvị trí trong bảng chữ cái. Giả sử chọnk = 3, ta có bảng chuyển đổi như sau: Chữ ban đầu:a b c d e f g h i j k l m n o p q r s t u v w x y z Chữ thay thế:d e f g h i j k l m n o p q r s t u v w x y z a b c Giả sử bản tin là: 'attack' thì sau khi mã hóa sẽ có bản mã 'dwwdfn' và Ceasar gửi bản mã cho cấp dưới. Nhận được bản mã và khóa, cấp dưới của Ceasar chưa biết giải mã làm sao. Bạn hãy giúp họ đi nào. Input Dòng đầu tiên là bản tin đã được mã hóa, chỉ gồm các chữ cái la tinh thường, chiều dài không quá 100 ký tự. Dòng thứ 2 là số nguyên thể hiện khóa k (1 k 25) Output Bản tin ban đầu. Sample Input #1 Copy wyvnyhttpun 7 Output #1 Copy programming

Lời giải 1 :

`Code` `C`++:

#include <iostream>
using namespace std;
int main() {
    int k;
    string s;
    cin >> s;
    cin >> k;
    for (int i = 0; i < s.length(); i++)
        if (97 <= s[i] - k and s[i] - k <= 122) s[i] = char(s[i] - k);
        else if (s[i] - k < 97) s[i] = char(s[i] - k + 26);
        else if (s[i] - k > 122) s[i] = char(s[i] - k - 26);
    cout << s;
}

__________________________________

`@``kieu`

Lời giải 2 :

Công thức chuyển đổi: `s[i]='a'+(s[i]-k-'a'+26)%26`

`**` Đã AC trên lcoj và ntucode.

$\texttt{C++}$

#include <bits/stdc++.h>

using namespace std;

int main()
{
    string s;
    cin>>s;
    int k;
    cin>>k;
    for(char& c:s)
    {
        c='a'+(c-k-'a'+26)%26;
    }
    cout<<s;
}

image
image

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần và sang năm lại là năm cuối cấp, áp lực lớn dần. Hãy chú ý đến sức khỏe, cân bằng giữa học và nghỉ ngơi để đạt hiệu quả tốt nhất!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK