Mivel remek az idő, egyáltalán nem vágysz rá, hogy egy órát egy tanteremben tölts. Bosszúsan belépsz a tanterembe, ahol egy furcsán kielégítő háromszög alakot veszel észre a táblán. Amíg a matektanárodra vársz, óhatatlanul észreveszel néhány mintázatot a háromszögben: a szélső értékek mind egyesek, minden következő sorban eggyel több érték van, mint az előzőben, és a háromszög szimmetrikus. Fura!
Nem sokkal azután, hogy leülsz, belép a tanár a terembe, és elmagyarázza, hogy ez a háromszög nem más, mint a híres Pascal-háromszög.
A következő órában a tanárod lenyűgöző dolgokat tár fel, amelyek ebben a háromszögben rejlenek:
A tanár arra kér téged és az osztálytársaidat, hogy nézzetek utána más felhasználási módoknak is, és biztosít róla, hogy még rengeteg van! Ebben a pillanatban megszólal az iskolacsengő. Rájössz, hogy az elmúlt egy órában teljesen elmerültél a Pascal-háromszög megismerésében. Gyorsan kikapod a laptopodat a táskádból, és kimentek a szabadba, készen arra, hogy élvezd a napfényt és a Pascal-háromszög csodáit.
A feladatod, hogy kiírd a Pascal-háromszög első N sorát.
A Pascal-háromszög pozitív egész számok háromszög alakban elrendezett tömbje.
A Pascal-háromszögben egy sorban annyi érték van, amennyi a sor száma (amely egytől indul). Ezért az első sorban egy érték van, a másodikban kettő, és így tovább.
A legelső (legfelső) sorban egyetlen érték van: 1. A további sorok értékeit úgy számítjuk ki, hogy összeadjuk az előző sorban az aktuális pozíció közvetlenül jobbra és balra lévő számait.
Ha az előző sorban az aktuális pozíciótól balra vagy jobbra nincs érték (ez csak a legszélső baloldali és jobboldali pozícióknál fordul elő), akkor az adott pozíció értékét nullának tekintjük (az összegzésben gyakorlatilag „figyelmen kívül hagyjuk”).
Nézzük meg a Pascal-háromszög első 5 sorát:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
A legfelső sorban egyetlen érték van, ami 1.
A legszélső bal- és jobboldali értékeknél csak egyetlen előző pozíciót vehetünk figyelembe, mégpedig a tőlük jobbra, illetve balra esőt. Mivel a legfelső érték 1, ebből az következik, hogy minden legszélső bal- és jobboldali érték szintén 1.
A többi értéknél két pozíciót kell figyelembe venni. Például az ötödik sor (1 4 6 4 1) középső értéke 6, mivel az előző sorban tőle balra és jobbra a 3 és a 3 áll:
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) COBOL nyelvet 46 feladat segítségével, valódi emberi mentorálással, mindez ingyen.