Tính chẵn/lẻ

Xem PDF




Tác giả:
Dạng bài
Điểm: 800 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Viết chương trình nhập vào một số nguyên dương \(x\). In ra chữ YES nếu \(x\) là số chẵn, ngược lại in chữ NO.

Input

  • Một số nguyên dương \(x\) không vượt quá \(10^{15} = 1.000.000.000.000.000\).

Output

  • In ra chữ YES nếu \(x\) là số chẵn, ngược lại in chữ NO.

Example

Test 1

Input
1 
Output
NO

Test 2

Input
12 
Output
YES

Bình luận


  • 5
    SPyofgame    7:07 a.m. 19 Tháng 6, 2020 chỉnh sửa 6

    Spoiler Alert


    Approach 1

    • Xét tính chia hết cho 2

    \(n\) lẻ \(\Leftrightarrow n \equiv 1 \pmod{2} \Leftrightarrow n \mod{2} = 1\)

    \(n\) chẵn \(\Leftrightarrow n \equiv 0 \pmod{2} \Leftrightarrow n \mod{2} = 0\)


    Approach 2

    • Xét bit cuối của \(x\)

    \(n = \Sigma_{i=0}^{\lfloor log_2{n} \rfloor} (x_i \times 2^i)\) với \(x_i \in \{0, 1\}\)

    Khi \(\ last\_bit(n) = n\ \& \ 1 = 1\) có:

    \(n = 1 + \Sigma_{i\ =\ 1}^{\lfloor log_2{n} \rfloor} (x_i \times 2^i)\) (\(x_i \in \{0, 1\}\), \(x_0 = 1\))

    \(= 1 + 2 * \Sigma_{i\ =\ 0}^{\lfloor log_2{n} - 1 \rfloor} (x_i \times 2^i)\)

    \(= 1 + 2 * k\) với \((k \in ℕ)\) là số lẻ

    Khi \(\ last\_bit(n) = n\ \& \ 1 = 0\) có:

    \(n = 0 + \Sigma_{i\ =\ 1}^{\lfloor log_2{n} \rfloor} (x_i \times 2^i)\) (\(x_i \in \{0, 1\}\), \(x_0 = 0\))

    \(= 0 + 2 * \Sigma_{i\ =\ 0}^{\lfloor log_2{n} - 1 \rfloor} (x_i \times 2^i)\)

    \(= 0 + 2 * k\) với \((k \in ℕ)\) là số chẵn


    Approach 3

    • Xét chữ số cuối cùng của số biểu diễn dưới dạng xâu

    Với \(s\)\(n\) biểu diễn dưới dạng xâu

    \(n \equiv n \mod{10} \pmod{2}\)\(n \mod{10} = int(s.back() -\) '0' \()\) nên ta có

    Khi \(\ last\_digit(n) = n \mod 10 \in\) {$ 1, 3, 5, 7, 9$} thì \(n\) lẻ

    \(\Leftrightarrow s.back() \in\) {\('1', '3', '5', '7', '9'\)}

    Khi \(\ last\_digit(n) = n \mod 10 \in\) {$ 0, 2, 4, 6, 8$} thì \(n\) chẵn

    \(\Leftrightarrow s.back() \in\) {\('0', '2', '4', '6', '8'\)}


    • 1
      PY2GTranNguyenAnhKhoi    3:40 p.m. 27 Tháng 1, 2024

      approach 1 dễ nhất =)


      • 0
        Avocadorable    12:29 p.m. 27 Tháng 1, 2024

        % has joined the chat


        • 2
          PY2GTrinhTuongKhue    2:11 p.m. 1 Tháng 9, 2023

          rất hay nhx bài ni đơn giản,phân tích kĩ quá gây rối


          • 0
            namhoangtu    7:42 p.m. 16 Tháng 3, 2023

            ồ cảm ơn bạn nha


            • 1
              vunhuphu    10:41 p.m. 9 Tháng 2, 2023

              Approach 2 chả hiểu j cả 😃


              • -8
                trần_đức_bo    8:23 p.m. 6 Tháng 6, 2022

                Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.

                6 bình luận nữa