PTIT124J spoj – chuyển nhị phân sang bát phân

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

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *