Open utterances-bot opened 2 years ago
em xin code vs
Lúc đầu mình làm theo cách bình thường thì nhận ra quy luật của nó như sau vd: input: 1 2 3 4 5 6 7 8..... output: 9 9 90 90 900 900 9000 9000.....
Dễ thấy 1 số đối xứng muốn tạo ra thì chỉ cần tạo 1 nửa của nó tức là ví dụ số có 3 chữ số thì chỉ cần tạo 10 11 12 rồi lật lại thành 101 111 121 nên muốn tạo số có n chữ số cần 9 cách chọn số đầu, 10 cách chọn các số còn lại, còn số lượng cần thì tự tính https://luyencode.net/status/6b70f7184617ec6f3033a490406fbe3c?problem=NPALIN1
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình. One hit AC with - Phân Tích =))
```cpp
#include
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
// Code hoi troll
#include
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
```cpp
#include
Đây là lời giải của mình đã AC. Nếu bạn đã cố gắng mà chưa làm được thì có thể tham khảo lời giải của mình.
program sodoixun; type arr = array[1..15] of byte; var n, res, m, i: longint; x: arr; s: ansistring; arrres: array[1..15] of int64; procedure printf; var i: longint; begin for i := 1 to m do write(x[i]); writeln; end; procedure try(i: longint); var j: longint; begin if i = 1 then for j := 1 to 9 do begin x[i] := j; if i = m then inc(res) else try(i+1); end else for j := 0 to 9 do begin x[i] := j; if i = m then inc(res) else try(i+1); end; end; begin for i := 1 to 15 do begin if i mod 2 = 0 then m := i div 2 else m := i div 2 + 1; try(1); arrres[i] := res; res := 0; end; while true do begin readln(s); if s = '' then break; val(s, n); writeln(arrres[n]); end; end.
Chi tiết bài tập - Luyện Code Online
https://luyencode.net/problem/NPALIN1