Thứ Sáu, 2 tháng 8, 2019

Bài 38 - Giải thuật nhập môn

Với 2 chữ số x và y, khoảng cách của chúng được định nghĩa là số nguyên không âm nhỏ nhất d(x,y) mà khi cộng thêm d(x,y) vào một chữ số nào đó trong 2 chữ số x, y thì kết quả nhận được là một số nguyên có chữ số hàng đơn vị trùng với chữ số còn lại.
VD  d(2,5)=3 vì 2+3=5; d(5,1)=4 vì 1+4=5; còn d(1,9)=2 vì 9+2=11
Với 2 số nguyên dương x và y có cùng số lượng chữ số, khoảng cách d(x,y) giữa 2 số x vày y là tổng khoảng cách giữa các cặp chữ số cùng hàng tương ứng.
VD: d(213,419)=d(2,4) +d(1,1) + d(3,9) = 2 + 0 + 4= 6
Bài toán: Cho 2 chữ số x vày y có cùng lượng chữ số N ( 0<N<100), hãy tìm khoảng cách d(x,y)
Dữ liệu vào: từ file Distance.inp trong đó dòng đầu chúa số x, dòng 2 chúa số y thỏa mãn ràng buộc của bài toán.
Kết quả: ghi ra file Distance.out trong đó chứa một số nguyên duy nhất là kết quả d(x,y) tìm được.
Ví dụ: 
Distance.inp:
213
419
Distance.out:
6

1 nhận xét:

  1. Uses crt;
    Var i,n,total:longint;
    s1,s2:string;
    function max(a,b:char):longint;
    Var d1,d2:integer;
    Begin
    Val(a,d1);
    Val(b,d2);
    If a>b then exit(d1) else exit(d2);
    end;
    function min(a,b:char):longint;
    Var d1,d2:integer;
    Begin
    Val(a,d1);
    Val(b,d2);
    If a>b then exit(d2) else exit(d1);
    end;
    function d(a,b:longint):longint;
    Begin
    If (a-b)<=5 then exit(a-b) else exit(b*10+b-a);
    end;
    Begin
    readln(n);
    readln(s1);
    readln(s2);
    For i:=1 to n do
    total:=total+d(max(s1[i],s2[i]),min(s1[i],s2[i]));
    Write(total);
    readln;
    end.

    Trả lờiXóa

Dùng nick gmail để bình luận. Nếu lần đầu tiên bạn làm điều này thì hệ thống sẽ chuyển bạn sang trang blogger và hỏi bạn chọn tên hiển thị là gì. Bạn hãy nhập tên hiển thị rồi ok là được. Những lần bình luận sau hệ thống sẽ không hỏi nữa. Cảm ơn!

Bài được xem nhiều nhất