Nguồn đề bài: http://www.spoj.com/PTIT/problems/P146SUMF/
Nội dung bài viết
1. Đề bài P146SUMF spoj
Cho trước một số nguyên không âm n, nhiệm vụ của bạn là tìm số nguyên k nhỏ nhất, sao cho dãy số n, 2n, 3n, …, kn có chứa đầy đủ các chữ số từ 0 đến 9.
Input
Gồm nhiều bộ test. Mỗi test gồm một số nguyên dương n trong phạm vi từ 1 tới 200 000 000.
Output
Với mỗi test, in ra trên một dòng số nguyên k thỏa mãn yêu cầu.
Example
Input:
1
10
123456789
3141592
Output:
10
9
3
5
2. Hướng dẫn P146SUMF spoj PTIT
– thực hiện sinh xâu k*n (k=1..+oo)
– duyệt kiểm tra có thỏa điều kiện đề bài hay không? nếu có thì xong bài toán. còn ko tiếp tục tăng k và kiểm tra
3. code tham khảo P146SUMF spoj PTIT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | const fi=''; type data=longint; var f:text; N:data; DD:array[0..9] of boolean; sl:data; function check:boolean; begin exit(sl=10); end; procedure xuli; var i,j:data; tmp:string; begin fillchar(dd,sizeof(dd),false); sl:=0; for i:=1 to 200000000 do begin str(int64(i)*int64(n),tmp); for j:=1 to length(tmp) do if dd[ord(tmp[j])-48]=false then begin dd[ord(tmp[j])-48]:=true; inc(sl); if check then break; end; if check then break; end; writeln(i); end; begin assign(f,fi); reset(f); while not seekeof(f) do begin readln(f,n); xuli; end; close(f); end. |
Bài viết liên quan
- P156SUME spoj PTIT – ROUND 6E – Ước chung của chuỗi
- P156SUMH spoj PTIT – ROUND 6H – Kim cương
- PTIT013A spoj PTIT – Số may mắn
- P142SUMG spoj PTIT – Mã hóa
- P141PROB spoj PTIT – Tuần lễ công dân
- BCTHIDAU spoj PTIT – Thi đấu
- P153PROI PTIT spoj – Mã hóa xâu
- FINDCOW PTIT spoj – Find the Cow!
- PTIT123E PTIT spoj – Số vòng
- PTIT123A PTIT spoj – Sắp xếp 2