Takže ty potřebuješ pole polí, a každé z těch polí bude o jednu buňku větší než předchozí? A všechna současně budou v operační paměti...
To by si ten co to vymyslel měl zkusit naprogramovat na osmibitovém počítači se 16 KB RAM, za trest a aby ho přešly takové pitomé nápady

Přetečení - to znamená že se výsledek nevejde do proměnné. Asi jako kdyby ti na počítadle došly kuličky.
Protože
int je na běžných počítačích ve většině dnešních jazyků a kompilátorů dvaatřicetibitový (čtyři bajty), znamená to, že největší číslo co do něj můžeš uložit je 2^31 + 1 bit znaménko, což je v desítkové soustavě něco přes dvě miliardy. Pro záporná čísla platí totéž. Na PDP-11 to bylo horší, tam ses musel vejít do šestnácti bitů, takže se dalo počítat jen v intervalu -32768 až 32767.
Na 45. úrovni té Fibonacciho řady je 1134903170, na 46. zase 1836311903, což po součtu dá skoro tři miliardy, a na to je potřeba i ten 32. znaménkový bit, jenže tím že se změní z 0 na 1 proměnná přeteče do záporných čísel a vyjde úplně špatně -1323752223!
Trošku jsem si to usnadnil (abych tě neděsil ukazateli a funkcemi jako malloc() a sizeof()), pole mám statické, jde hlavně o ty smyčky. Takže nejdřív vstup, ošetřený o hlídání maxima:
Kód: Vybrat vše
printf("Zadej počet prvků Fibonacciho posloupnosti (max. %d): ",LIMIT);
for (pocet=-1;pocet>LIMIT || pocet<0;scanf("%d",&pocet));
Druhá část je naplnění polí jednotlivými posloupnostmi. Na začátku každé z nich je nutné resetovat proměnné minule a cislo, jinak ti vyjdou hausnumera:
Kód: Vybrat vše
for (i=0;i<=pocet;++i)
{
minule=0;
cislo=1;
for (j=0;j<=i;++j)
{
pole[i][j]=temp=minule;
minule=cislo;
cislo+=temp;
}
}
Třetí část je jejich výpis. Tam jsem fakt nepochopil to
System.out.println("["+dalsiClen(posloupnost)+"]");To má fungovat rekurzivně nebo Java umí vypsat celé pole jedním příkazem? Něco podobného je ve FORTRANu, v jiných jazycích jsem to zatím neviděl. Takže jsem vypsal jednotlivé prvky pěkně po jednom stejnými smyčkami jako jsem je vytvořil, a kolem nich nalepil tu bižuterii:
Kód: Vybrat vše
/* výpis polí */
for (i=0;i<=pocet;++i)
{
for (j=0;j<=i;++j)
if (j)
printf(", %d",pole[i][j]);
else
printf("[%d",pole[i][j]);
printf("]\n");
}
Výsledek vypadá takhle:
Kód: Vybrat vše
Zadej počet prvků Fibonacciho posloupnosti (max. 46): 10
[0]
[0, 1]
[0, 1, 1]
[0, 1, 1, 2]
[0, 1, 1, 2, 3]
[0, 1, 1, 2, 3, 5]
[0, 1, 1, 2, 3, 5, 8]
[0, 1, 1, 2, 3, 5, 8, 13]
[0, 1, 1, 2, 3, 5, 8, 13, 21]
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
Jen tak naslepo - když ti jedna metoda tu posloupnost vytvoří, nešlo by to tak že jí druhá metoda zobrazí?