NPALIN1 - Số đối xứng 1

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Một số nguyên dương được gọi là số đối xứng nếu khi viết các chữ số của nó (trong hệ thập phân) theo thứ tự ngược lại ta vẫn được chính số đó.

Cho số nguyên dương ~n~, đếm xem có bao nhiêu số đối xứng có ~n~ chữ số.

Input

  • Gồm nhiều dòng, mỗi dòng ghi một số nguyên dương ~n~.

Giới hạn:

  • Mỗi test có không quá ~10^5~ dòng
  • ~1≤n≤15~

Output

  • Với mỗi số nguyên dương ~n~, ghi ra trên một dòng số lượng số đối xứng có ~n~ chữ số

Sample

Input #1
1
2
Output #1
9
9

Problem source: Chuyên Sơn La Online Judge


Bình luận

Please read the guidelines before commenting.



  • 1
    mducc  đã bình luận lúc 3, Tháng 6, 2026, 14:19

    Hint:

    Số đối xứng có n chữ số: chọn nửa đầu, nửa sau lật ngược lại. Nếu n lẻ: chọn $$(n+1)/2$$ chữ số, chữ số đầu ≠ 0. Nếu n chẵn: chọn n/2 chữ số, chữ số đầu ≠ 0. Công thức: $$9 * 10^((n-1)/2)$$.

    code tham khảo (c++)

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
        int n;
        while (cin >> n) {
            long long ans = 9;
            int k = (n - 1) / 2;
            for (int i = 1; i <= k; i++) ans *= 10;
            cout << ans << "\n";
        }
        return 0;
    }
    

  • 0
    Klb_0063  đã bình luận lúc 23, Tháng 2, 2026, 14:07

    uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia uia


  • -1
    congtyluuthaibao1978  đã bình luận lúc 25, Tháng 11, 2025, 11:59

    include <bits/stdc++.h>

    using namespace std;

    int main() { ios::syncwithstdio(false); cin.tie(nullptr);

    long long n;
    while (cin >> n) {
        // Số các số đối xứng có n chữ số:
        // 9 × 10^{floor((n‑1)/2)}
        long long power = (n - 1) / 2;
        long long res = 9;
        for (long long i = 0; i < power; i++) {
            res *= 10;
        }
        cout << res << "\n";
    }
    return 0;
    

    }


  • 5
    1000dayslearningcode  đã bình luận lúc 15, Tháng 6, 2025, 10:32 chỉnh sửa

    ví dụ một số có n chữ số

    nếu n là 4: abcd

    để là số đối xứng thì b=c và a=d

    vì a là chữ số ddầu tiên nên có 9 cách chọn {1,9}

    d luôn dính với a nên không cần tính

    và b có 10 cách chọn {0,9}

    tổng có 9*10=10 cách

    với n = 3 cũng tương tự abc

    b có 10 cách và a=c có 9

    tổng có 9*10 cách

    vậy n(lẻ)=n+1 nên khi đọc n nếu lẻ thì tăng n lên 1 rồi áp công thức sau:

    tongdoixung = 10 ^ (n/2 - 1) * 9

    chúc anh em code tốt:3


  • 1
    HHVinh007  đã bình luận lúc 16, Tháng 12, 2024, 15:35

    bài này quan trọng là nắm quy luật, chứ code chay rồi chạy n=15 chắc nổ máy


  • 5
    dungolduck  đã bình luận lúc 14, Tháng 2, 2024, 8:43

    bài này bạn có thể đếm đc số cách chọn: vs như n=2 thì chỉ cần đếm cách chọn của 1 số nên n=2->9 còn n=3 thì chia ra có ab a có 9 cách chọn b có 10 cách chọn -> 90 số; code vd:

    int h;
    while(cin >> h){
        int k=(h+1)/2-1;
        ll res=9*pow(10, k);
        cout << res << endl;
    }
    
    return 0;