Gdzie jest błąd w kodzie zadania?

0

Zadanie Synowie Abrahama
Stary Abraham miał siedmiu synów. Każdy potomek Abrahama z parzystego pokolenia (wnuk, praprawnuk, praprapraprawnuk...) miał 3 synów, a każdy potomek Abrahama z nieparzystego pokolenia (syn, prawnuk, prapraprawnuk...) miał 5 synów. Oj, liczne jest potomstwo Abrahama – dlatego nie dziwi, że stary Abraham nie może się doliczyć swoich zstępnych. Pomóż Abrahamowi policzyć swoich potomków.

Wejście

Pierwsza linia wejścia składa się z jednej liczby całkowitej 1 <= N <= 20, która oznacza liczbę testów.
W każdej z N kolejnych linii znajduje się liczba 1 <= M <= 15, która oznacza liczbę pokoleń, które bierzemy pod uwagę.

Wyjście

Dla każdej liczby M należy w osobnym wierszu wypisać liczbę potomków Abrahama (nie wliczając samego Abrahama) od pierwszego aż do M-tego pokolenia (pierwszym pokoleniem są synowie Abrahama, drugim – wnuki itd.).

Przykład

Wejście:
4
1
2
3
5

Wyjście:
7
42
147
2247

Wyjaśnienie:
7
42 = 7 + 5 * 7
147 = 7 + 5 * 7 + 3 * (5 * 7)
2247 = 7 + 5 * 7 + 3 * (5 * 7) + 5 * (3 * (5 * 7)) + 3 * (5 * (3 * (5 * 7)))

program Project1;
var i,p,m,r,n:longint;
  function Abra(n:longint):integer;
  begin
    m:=7;
    if (n mod 2)=0 then
    Abra:=(m + Abra(5*m))
    else
       Abra:=(m + Abra(5*m)*3);
  end;
begin
  readln(r);
  for i:=1 to r do
  begin
    readln(p);
    Abra(p);
    Writeln(Abra(p));
  end;
  readln;
  readln;
end.
                         
1

Em, a napisz to bez wykorzystania rekurencji.

0
  1. Możesz dać linka do zadania? - bo to mi na spoj wygląda.
  2. Czytaj zakresy. Oblicz wszystko dla 15 pokoleń - wrzuć do tablicy a później tylko odczytuj.

1 użytkowników online, w tym zalogowanych: 0, gości: 1