Hướng dẫn giải của F14: Số bậc thang


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.

Hướng dẫn giải

Một số là số bậc thang nếu nó có ít nhất hai chữ số và đọc từ trái sang phải thì mỗi chữ số đứng sau không nhỏ hơn chữ số đứng trước. Cần kiểm tra từng số trong T số cho trước.

Cách làm

Chuyển số thành chuỗi kí tự để dễ duyệt từng chữ số. Nếu chuỗi có ít hơn 2 kí tự thì không phải số bậc thang. Nếu không, so sánh mỗi kí tự với kí tự đứng trước: nếu có kí tự nào nhỏ hơn kí tự đứng trước thì in No, ngược lại in Yes.

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

// Kiểm tra số n có phải số bậc thang hay không
bool la_bac_thang(long long n) {
    // Chuyển số thành chuỗi để duyệt từng chữ số
    string s = to_string(n);
    // Số bậc thang phải có ít nhất 2 chữ số
    if (s.size() < 2) {
        return false;
    }
    // Mỗi chữ số đứng sau phải không nhỏ hơn chữ số đứng trước
    for (int i = 1; i < (int)s.size(); i++) {
        if (s[i] < s[i - 1]) {
            return false;
        }
    }
    return true;
}

int main() {
    int t;
    cin >> t;
    // Kiểm tra lần lượt từng số
    for (int i = 0; i < t; i++) {
        long long n;
        cin >> n;
        if (la_bac_thang(n)) {
            cout << "Yes\n";
        } else {
            cout << "No\n";
        }
    }
    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.