Trang chủ Tin Học Lớp 8 A181D - Bội của 8 Mr Bin rất yêu thích...

A181D - Bội của 8 Mr Bin rất yêu thích số 8, anh ấy đang học bảng cửu chương nên muốn đi tìm dấu hiệu về bội số của 8. Mr Toàn thấy anh ấy có hứng thú với Toán

Câu hỏi :

A181D - Bội của 8 Mr Bin rất yêu thích số 8, anh ấy đang học bảng cửu chương nên muốn đi tìm dấu hiệu về bội số của 8. Mr Toàn thấy anh ấy có hứng thú với Toán học như vậy nên rất vui. Sau khi yêu cầu anh ấy dùng Scrath lập trình trò chơi luyện khả năng ghi nhớ bảng cửu chương thì Mr Toàn bèn cho một số nguyên n và yêu cầu Mr Bin hãy đảo các chữ số trong n sao cho n chia hết cho 8. Loay hoay mãi, Mr Bin không thể dùng ngôn ngữ kéo thả Scrath để xử lý, anh ấy dù mới học lớp 3 nhưng rất hứng thú với Python và C++, chỉ có điều anh ấy chưa code được tốt lắm. Hãy giúp Mr Bin xử lý bài toán này nhé! Input Specification Một dòng duy nhất ghi số nguyên: n(1≤length(n)≤2×105) Output Specification In ra Yes nếu số nguyên n có thể biến đổi về một số chia hết cho 8 hoặc No nếu không thể Sample Input 1 Copy 1234 Sample Output 1 Copy Yes Sample Input 2 Copy 1333 Sample Output 2 Copy No

Lời giải 1 :

#include <iostream>
using namespace std;

#define Y return cout << "Yes", 0;
#define N return cout << "No", 0;
int cnt[10];
string s;
int a, b, c;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    
    cin >> s;
    if (s.size() == 1) {
        if (s == "0" || s == "8") Y;
        N;
    }
    if (s.size() == 2) {
        a = s[0] - 48;
        b = s[1] - 48;
        ((a * 10 + b) % 8 == 0 || (b * 10 + a) % 8 == 0)?cout << "Yes":cout << "No";
        return 0;
    }
    for (int i = 0; i < s.size(); ++i)
        cnt[s[i] - 48]++;
    
    for (int i = 16; i <= 999; i += 8) {
        a = i / 100;
        b = (i / 10) % 10;
        c = i % 10;
        if (a == b && b == c) { if (cnt[a] >= 3) Y; } else
        if (a == b) { if (cnt[a] >= 2 && cnt[c]) Y; } else
        if (a == c) { if (cnt[a] >= 2 && cnt[b]) Y; } else
        if (b == c) { if (cnt[b] >= 2 && cnt[a]) Y; } else
        if (cnt[a] && cnt[b] && cnt[c]) Y;
    }
    N;
}

Thảo luận

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, 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 (ảo). Với cách hiểu hiện nay, 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.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 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, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Copyright © 2021 HOCTAP247