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
f[1]=f[2]=9; f[3]=f[4]=f[2]*10...
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
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
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: