RosettaCodeData/Task/General-FizzBuzz/XPL0/general-fizzbuzz.xpl0
2023-07-01 13:44:08 -04:00

30 lines
660 B
Text

string 0; \use zero-terminated strings
proc GetString(S); \Get string (S) from user
char S;
[loop [S(0):= ChIn(0);
if S(0) = $0D \CR\ then quit;
S:= S+1;
];
S(0):= 0; \replace CR with terminator
];
int Limit, I, Factor(3), Str(3,40), F(3), N;
[Limit:= IntIn(0);
for I:= 0 to 2 do
[Factor(I):= IntIn(0);
GetString(Str(I));
F(I):= 0;
];
for N:= 1 to Limit do
[for I:= 0 to 2 do
[F(I):= F(I)+1;
if F(I) >= Factor(I) then
[Text(0, Str(I));
F(I):= 0;
];
];
if F(0)*F(1)*F(2) # 0 then IntOut(0, N);
CrLf(0);
];
]