Nguồn đề bài: http://www.spoj.com/PTIT/problems/PTIT124J/
1. Đề bài PTIT124J spoj
Cho một số ở hệ nhị phân, chuyển số đó sang hệ bát phân
Input
Một số duy nhất ở hệ nhị phân (không quá 100 chữ số, chữ số đầu tiên luôn là 1)
Output
Số sau khi chuyển sang hệ bát phân.
Example
Input:
1010
Output:
12
Input:
11001100
Output:
314
Điều hiển nhiên, kết quả khi chuyển từ hệ nhị phân sang hệ bát phân như sau:
000 –> 0
001 –> 1
010 –> 2
011 –> 3
100 –> 4
101 –> 5
110 –> 6
111 –> 7
từ đó ta chuyển về bài toán thay thế xâu là được
2. code mẫu PTIT124J spoj
const fi=''; nmax=102; type data=longint; var f:text; S:ansistring; function doi(s:string):data; begin case s of '000': exit(0); '001': exit(1); '010': exit(2); '011': exit(3); '100': exit(4); '101': exit(5); '110': exit(6); '111': exit(7); end; end; procedure xuli; var i,j:data; begin while length(s) mod 3 <>0 do s:='0'+s; while length(s)<>0 do begin write(doi(copy(s,1,3))); delete(s,1,3); end; end; begin assign(f,fi); reset(f); readln(f,s); close(f); xuli; end.
keywords: chuyển hệ nhị phân sang bát phân pascal. chuyển đổi hệ cơ số 2 sang 8