Pascalov trikotnik
Sestavi program, ki bo izpisal prvih $n$ vrstic Pascalovega (binomskega) trikotnika.
S poravnavo vrstic se ni potrebno ukvarjati (vsaka vrstica naj se prične ob levem robu okna).
Namig
Najprej osvežimo spomin: Pascalov trikotnik je zapis koeficientov potenc binoma. Torej izgleda približno tako:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ...
Prvi in zadnji element vsake vrstice je enak 1, ostale elemente pa dobimo kot vsoto ustreznih dveh elementov iz prejšnje vrstice. Opazimo tudi, da vsebuje $n$-ta vrstica $n$ števil.
Rešitev (Java)
import javax.swing.JOptionPane;
public class PascalovTrikotnik {
public static void main(String[] args) {
//vnesemo stevilo vrstic
String vhod = JOptionPane.showInputDialog("Vnesi stevilo vrstic: ");
int n = Integer.parseInt(vhod);
//rezerviramo prostor, v katerega shranimo elemente vrstice
int[] vrstica = new int[n];
//naracunamo novo vrstico in jo izpisemo
for (int i = 0; i<n; ++i) {
for (int j = 0; j<=i; j++) {
if (j == 0 || j == i) vrstica[i-j] = 1;
else vrstica[i-j] = vrstica[i-j] + vrstica[i-j-1];
System.out.print(vrstica[i-j] + " ");
}
System.out.println();
}
}
}
Rešitev (C#)
using System;
using System.Collections.Generic;
using System.Text;
namespace PascalovTrikotnik {
class PascalovTrikotnik {
static void Main(string[] args) {
//vnesemo stevilo vrstic
Console.Write("Vnesi stevilo vrstic: ");
int n = Int32.Parse(Console.ReadLine());
//rezerviramo prostor, v katerega shranimo elemente vrstice
int[] vrstica = new int[n];
//naracunamo novo vrstico in jo izpisemo
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) vrstica[i - j] = 1;
else vrstica[i - j] = vrstica[i - j] + vrstica[i - j - 1];
Console.Write(vrstica[i - j] + " ");
}
Console.WriteLine(); ;
}
Console.ReadKey();
}
}
}
Rešitev (Python)
#!C:/Python30/python
#-*-encoding: utf-8 -*-
# -*- coding: latin-1 -*-
'''
Created on 2.7.2009
@author: fajdigap
'''
#vnesemo stevilo vrstic
n = int(input("Vnesi stevilo vrstic: "))
#rezerviramo prostor, v katerega shranimo elemente vrstice
vrstica = []
#naracunamo novo vrstico in jo izpisemo
for i in range(n):
for j in range(i):
if j == 0 or j == i:
vrstica.insert(i-j,1)
else:
vrstica.insert(i-j,(int(vrstica[i-j])+ int(vrstica[i-j-1])))
print (vrstica)