Không hỗ trợ Mobile

Chế độ luyện tập yêu cầu môi trường màn hình lớn để làm bài và chống gian lận hiệu quả. Vui lòng truy cập bằng máy tính (Desktop/Laptop) để tiếp tục thao tác.

Quay lại trang chủ

#1055 · Mã hoá mật khẩu

MÔ TẢ BÀI TOÁN

Hiện nay, với sự bùng nổ của công nghệ thông tin, mỗi cá nhân đều có cho mình một số tài khoản (tài khoản facebook, tài khoản e-mail, tài khoản twitter…). Các tài khoản này đều cần được bảo vệ bằng các mật khẩu. Một vấn đề quan trọng là cần có biện pháp bảo vệ các mật khẩu đó “an toàn” để tránh bị đánh cắp tài khoản.

Tèo luôn chọn cho mình những mật khẩu gồm một số chữ cái la-tinh đứng đầu (không quá 10 chữ cái) và đem ghép vào cuối một số nguyên dương trong hệ thập phân (không quá 6 chữ số). Ví dụ: Abcd12. Sau đó Tèo mã hóa mật khẩu bằng cách tách phần số ở cuối, giữ lại phần chữ cái ở đầu và đem chèn vào giữa các chữ cái đó (có thể cả ở đầu và ở cuối) một số chữ số từ 0 đến 9 sao cho tổng các chữ số được chèn đúng bằng số ở cuối của mật khẩu. Ví dụ: A1b23c4d2 là một cách mã hóa của mật khẩu Abcd12 (các chữ số được dùng để chèn là 1 + 2 + 3 + 4 + 2 = 12).

Bạn hãy giúp Tèo viết một chương trình giải mã mật khẩu nhé?

Dữ liệu vào

Một dòng duy nhất chứa xâu ký tự mật khẩu đã mã hóa chỉ gồm các chữ cái la-tinh và chữ số.

Dữ liệu ra

Ghi ra một dòng duy nhất là mật khẩu giải mã được.

Ràng buộc

BẢNG TỔNG QUAN KẾT QUẢ

# Tài khoản Kết suất Lúc nộp
1
H
Võ Thanh Hà @2280600789
0 ms 180 KB
424 Bytes
15/02/2023
10:54
2
V
0 ms 196 KB
350 Bytes
12/03/2023
14:18
3
0 ms 200 KB
307 Bytes
05/10/2023
18:48
4
0 ms 252 KB
271 Bytes
23/03/2023
16:01
5
D
@
0 ms 256 KB
379 Bytes
04/03/2023
23:04
6
K
Lê Duy Khương @2280601578
0 ms 264 KB
374 Bytes
07/10/2023
16:00
7
0 ms 272 KB
418 Bytes
08/03/2023
14:27
8
0 ms 280 KB
401 Bytes
01/10/2023
20:53
9
1 ms 184 KB
263 Bytes
27/11/2022
08:28
10
M
Lê Quang Minh @2280601934
1 ms 184 KB
367 Bytes
12/06/2023
20:16
11
1 ms 184 KB
418 Bytes
21/05/2023
17:31
12
1 ms 188 KB
297 Bytes
10/05/2023
02:39
13
Lê Duy Hải @2280600799
1 ms 188 KB
474 Bytes
23/07/2023
21:17
14
1 ms 196 KB
749 Bytes
23/10/2023
00:23
15
1 ms 196 KB
935 Bytes
26/12/2022
16:01
16
H
1 ms 200 KB
402 Bytes
05/11/2023
22:24
17
1 ms 208 KB
458 Bytes
19/09/2023
00:26
18
T
Đoàn Chí Tân @2180607068
1 ms 212 KB
308 Bytes
25/09/2025
11:28
19
D
Dương Văn Duy @2380600322
1 ms 212 KB
358 Bytes
05/01/2024
18:05
20
T
1 ms 212 KB
538 Bytes
24/11/2024
14:19

LỊCH SỬ CÁ NHÂN

Vui lòng đăng nhập để xem lịch sử làm bài của bạn.

THẢO LUẬN BÀI TOÁN

V
1 năm trước

Bài mẫu ( tham khảo )

#include <stdio.h>
#include <string.h>
#include <ctype.h> // Thư viện dùng để nhận biết ký tự và số trong chuỗi
#define MAX 100000

int main()
{
    char mahoa[MAX], ketqua[MAX];
    fgets(mahoa, sizeof(mahoa), stdin);
    
    int lenmahoa = strlen(mahoa);
	
    int tong = 0, lenketqua = 0;
    
    for (int i = 0; i < lenmahoa; i++)
    {
        if (isalpha(mahoa[i])) // isalpha nhận biết ký tự trong chuỗi
        {
            ketqua[lenketqua] = mahoa[i]; // thêm vào kết quả
            lenketqua++;
        }
        else if (isdigit(mahoa[i])) // isdigit nhận biết chữ số trong chuỗi
        {
            tong += mahoa[i] - '0'; // - '0' bởi vì số trong ký tự tuân thủ bảng mã ascii ví dụ '1' thì trong ascii là 49 , nếu + '1' vào tổng thì nó sẽ + 49 vào thay vì 1. Giải pháp ta sẽ - '0' với '0' là 48 thì 49-48 = 1 làm tương tự cho '1' đến '9' ( luôn ghi nhớ nhé ).
        }
    }
    
    ketqua[lenketqua] = '\0';
    
    char tongchuoi[MAX]; // tạo 1 chuỗi chứa tổng
    sprintf(tongchuoi, "%d", tong); // chuyển tổng thành ký tự tuân thử ascii
    strcat(ketqua, tongchuoi); // ghép tongchuoi vào ketqua
    
    printf("%s\n", ketqua); // in ra kết quả cuối cùng
    
    return 0;
}

Vào thảo luận 0 Phản hồi
Viết code