“Tình yêu, sự kiên nhẫn và lời động viên chân thành có thể làm thay đổi tương lai một đứa trẻ…”

Vì hàng triệu học sinh giỏi Toán - Vì một Việt Nam hùng cường
Tìm tòi học toán

Chữa bài tập số 1 đề thi tin học trẻ bảng A năm 2024

28/08/2024 26.352 lượt xem

Chào các em,

Trong bài này, thầy Hiếu giới thiệu 1 bài tập lập trình trong đề thi tin học trẻ năm 2024 - bảng A.

 

Phân tích hướng giải:

- Ta để ý 1 lượt đi và về (quay về vị trí đầu tiên) sẽ có 2n - 1 bậc

- Ta xét số dư của k khi chia cho 2n - 1, gọi số dư là r.

- Nếu r < n - 1 ta dễ dàng tìm được vị trí 1 + r

- Nếu r > n - 1 ta cần tính toán bước lùi về một cách hợp lý, ở đây tùy theo tính chẵn, lẻ của số bước lùi về mà ta sẽ có công thức phù hợp.

 

Nhận xét: bài này chủ yếu thiên về toán, không sử dụng nhiều kỹ thuật lập trình. Dưới đây là code C++ tham khảo.

#include <bits/stdc++.h>
using namespace std;

int main ()
{
       long long int n, k, vitri;
       cin >> n;
       cin >> k;
       long long int q;
       vitri = 0;
       long long int r = k % (2*n - 1);
       
       if (r < n) 
       {
              vitri = r + 1;
              
       }
       else {
              q = r - (n - 1);
              if(q % 2 == 0)
              {
                     vitri = n - q;
              }else{
                     vitri = n - 2 - q;
              }
       }
       
       cout << vitri;
       
       return 0;
}

Chia sẻ bài viết Facebook Zalo
TƯ VẤN MIỄN PHÍ

Để lại thông tin, MATHX gọi lại cho bạn

Bộ phận tuyển sinh sẽ liên hệ trong vòng 24 giờ để tư vấn lộ trình phù hợp với con.

Thông tin của bạn được MATHX bảo mật tuyệt đối.

Đã nhận thông tin của bạn

MATHX sẽ liên hệ trong vòng 24 giờ. Nếu cần gấp, gọi hotline 0987 702 775.