with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
procedure Program is
function FizzBuzz(N: in Integer) return String is
Result: Unbounded_String := To_Unbounded_String("");
begin
if N rem 3 = 0 then
Result := Result & To_Unbounded_String("Fizz");
end if;
if N rem 5 = 0 then
Result := Result & To_Unbounded_String("Buzz");
end if;
if Result = "" then
Result := To_Unbounded_String(Integer'Image(N));
end if;
return To_String(Result);
end Fizzbuzz;
function Fib(N: in Integer) return Integer is
begin
if N < 2 then
return 1;
else
return Fib(N - 1) + Fib(N - 2);
end if;
end Fib;
begin
for N in Integer range 1 .. 100 loop
Put_Line("fizzbuzz(F_" & Integer'Image(N) & ") = " & FizzBuzz(Fib(N)));
end loop;
end Program;
d2l0aCBBZGEuVGV4dF9JTzsgdXNlIEFkYS5UZXh0X0lPOwp3aXRoIEFkYS5JbnRlZ2VyX1RleHRfSU87IHVzZSBBZGEuSW50ZWdlcl9UZXh0X0lPOwp3aXRoIEFkYS5TdHJpbmdzLlVuYm91bmRlZDsgdXNlIEFkYS5TdHJpbmdzLlVuYm91bmRlZDsKCnByb2NlZHVyZSBQcm9ncmFtIGlzCglmdW5jdGlvbiBGaXp6QnV6eihOOiBpbiBJbnRlZ2VyKSByZXR1cm4gU3RyaW5nIGlzCgkJUmVzdWx0OiBVbmJvdW5kZWRfU3RyaW5nIDo9IFRvX1VuYm91bmRlZF9TdHJpbmcoIiIpOwoJYmVnaW4KCQlpZiBOIHJlbSAzID0gMCB0aGVuCgkJCVJlc3VsdCA6PSBSZXN1bHQgJiBUb19VbmJvdW5kZWRfU3RyaW5nKCJGaXp6Iik7CgkJZW5kIGlmOwoJCWlmIE4gcmVtIDUgPSAwIHRoZW4KCQkJUmVzdWx0IDo9IFJlc3VsdCAmIFRvX1VuYm91bmRlZF9TdHJpbmcoIkJ1enoiKTsKCQllbmQgaWY7CgkJaWYgUmVzdWx0ID0gIiIgdGhlbgoJCQlSZXN1bHQgOj0gVG9fVW5ib3VuZGVkX1N0cmluZyhJbnRlZ2VyJ0ltYWdlKE4pKTsKCQllbmQgaWY7CgkJcmV0dXJuIFRvX1N0cmluZyhSZXN1bHQpOwoJZW5kIEZpenpidXp6OwoKCWZ1bmN0aW9uIEZpYihOOiBpbiBJbnRlZ2VyKSByZXR1cm4gSW50ZWdlciBpcwoJYmVnaW4KCQlpZiBOIDwgMiB0aGVuCgkJCXJldHVybiAxOwoJCWVsc2UKCQkJcmV0dXJuIEZpYihOIC0gMSkgKyBGaWIoTiAtIDIpOwoJCWVuZCBpZjsKCWVuZCBGaWI7CmJlZ2luCglmb3IgTiBpbiBJbnRlZ2VyIHJhbmdlIDEgLi4gMTAwIGxvb3AKCQlQdXRfTGluZSgiZml6emJ1enooRl8iICYgSW50ZWdlcidJbWFnZShOKSAmICIpID0gIiAmIEZpenpCdXp6KEZpYihOKSkpOwoJZW5kIGxvb3A7CmVuZCBQcm9ncmFtOw==