Hướng dẫn giải của Đoán Tổng


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Tác giả: tranxuantruong

Ý tưởng làm bài

Trước tiên đọc lại đề bài ta trích lọc được những thông tin sau:

  • Chọn N số ngẫu nhiêu liên tục (ví dụ chọn N=3 - chọn 3 số liên tục thì có thể chọn [83,84,85], [8,9,10],...)
  • Đề bài yêu cầu là tổng các số liên tục đó là chẵn, hay lẻ, hay không biết.

Nếu tóm tắt đề như trên mà vẫn chưa làm được thì có thể đọc hướng dẫn dưới đây Để giải thích ngắn gọn ta ký hiệu C là chẵn, L là lẻ

Ta dễ dàng nhận thấy rằng:

  • Nếu chọn 1 số ngẫu nhiên thì: có 2 khả năng chẵn hoặc lẻ. (vì thế đáp án là cả hai)
  • Nếu chọn 2 số liên tục ngẫu nhiên: thì ta có 2 trường hợp CL (ví dụ 8,9) , LC (ví dụ 11, 12). Thì ta dễ dàng nhận thấy là do có số chẵn và số lẻ cộng vào với nhau đương nhiên là lẻ rồi
  • Cứ thế ta phần tích 3 số thì có 2 trường hợp: CLC, LCL (thì tổng có 2 trường hợp, nên đáp án là cả hai)
  • Nếu chọn 4 số liên tục thì: CLCL, LCLC (tổng chắc chắn là số chẵn)

(Mấy cái trên toàn những tính chất cơ bản thôi)

  • Ta có thể đoán được quy luật khi lấy thêm ví dụ khác
  • Ta có thể thấy nếu N là lẻ thì tổng liên tục vừa chẵn vừa lẻ
  • Nếu N là là chẵn và chia hết cho 4 thì là tổng liên tục là chẵn
  • Nếu N là là chẵn và chia hết cho 4 dư 2 là số lẻ (mấy cái trên muốn chứng minh thì tự suy luận một xíu là ra thôi, vì thế tự nghĩ nha)

CODE

#include <iostream> 

using namespace std; 

int main(){
    int n; cin >> n; 

    if(n%2==1){
        cout <<2 <<endl;
    }
    else{
        if(n%4==0){
            cout <<0 <<endl;
        }
        else{
            cout <<1 <<endl;
        }
    }








    return 0; 
}


Bình luận

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


Không có bình luận tại thời điểm này.