I need some help in this Turbo Pascal problem:
Two integers are said to be brothers if each digit of N1 appears at least once in N2 and vice versa. Examples: if N1 = 1164 and N2 = 614 the program will display N1 and N2 are brothers, if N1 = 504 and N2 = 455 the program will display N1 and N2 are not brothers
My question is: How to check whether the 2 integers are brothers or not? This is my work:
function brother(n1, n2: integer): boolean;
var
test: boolean;
ch1, ch2: string;
begin
chr(n1, ch1);
chr(n2, ch2);
i := 0;
repeat
j := 0;
i := i + 1;
test := false;
repeat
j := j + 1;
if ch1[i] = ch2[j] then
test := true;
until (test = true) or (j = length(ch2));
until (test = false) or (i = length(ch1));
brother := test;
end;
when I run this, it always print ("integers are brothers") even when I put 504 and 455, I want to know where the mistake is.
chr
is a pseudo-function that converts aninteger
to a singlechar
. I assume that in your real code, you have something likestr(n1, ch1);
. You also had(n1,n2:integers)
as your parameter list (I corrected that), and that is not compilable code either. – Rudy Velthuis