June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -0,0 +1,51 @@
|
|||
MODULE SelfDescribingNumber;
|
||||
|
||||
FROM WholeStr IMPORT
|
||||
CardToStr;
|
||||
FROM STextIO IMPORT
|
||||
WriteString, WriteLn;
|
||||
FROM SWholeIO IMPORT
|
||||
WriteCard;
|
||||
|
||||
PROCEDURE Check(Number: CARDINAL): BOOLEAN;
|
||||
VAR
|
||||
I, D: CARDINAL;
|
||||
A: ARRAY [0 .. 9] OF CHAR;
|
||||
Count, W: ARRAY [0 .. 9] OF CARDINAL;
|
||||
Result: BOOLEAN;
|
||||
BEGIN
|
||||
CardToStr(Number, A);
|
||||
FOR I := 0 TO 9 DO
|
||||
Count[I] := 0;
|
||||
W[I] := 0;
|
||||
END;
|
||||
FOR I := 0 TO LENGTH(A) - 1 DO
|
||||
D := ORD(A[I]) - ORD("0");
|
||||
INC(Count[D]);
|
||||
W[I] := D;
|
||||
END;
|
||||
Result := TRUE;
|
||||
I := 0;
|
||||
WHILE Result AND (I <= 9) DO
|
||||
Result := (Count[I] = W[I]);
|
||||
INC(I);
|
||||
END;
|
||||
RETURN Result;
|
||||
END Check;
|
||||
|
||||
VAR
|
||||
X: CARDINAL;
|
||||
|
||||
BEGIN
|
||||
WriteString("Autodescriptive numbers from 1 to 100000000:");
|
||||
WriteLn;
|
||||
FOR X := 1 TO 100000000 DO
|
||||
IF Check(X) THEN
|
||||
WriteString(" ");
|
||||
WriteCard(X, 1);
|
||||
WriteLn;
|
||||
END;
|
||||
END;
|
||||
WriteString("Job done.");
|
||||
WriteLn;
|
||||
END SelfDescribingNumber.
|
||||
Loading…
Add table
Add a link
Reference in a new issue