#Implementation of Pascal Triangle
num_of_lines = input("How many lines you want to display")
list1 = []
for i in range(num_of_lines):
flag = 0
tmp = []
for j in range(i+1):
if flag == 0 or j == i:
tmp.append(1) # for the first or teh last element of the line
flag = 1
else:
tmp.append(list1[i-1][j-1]+list1[i-1][j]) # for rest, add teh numbers in previous row
list1.append(tmp)
# this code prints the Pascal triangle
for i in range(num_of_lines):
for j in range(i+1):
print list1[i][j],
print
Output for num_lines = 5:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
-----------------------------
1 1
1 2 1
1 3 3 1
1 4 6 4 1
-----------------------------
THNAKS ONCE MORE.
On 10/5/06, Asrarahmed Kadri <[EMAIL PROTECTED]> wrote:
Thank you so much.I am trying to implement. I hope I can do it.A gentle note: This is not a homework question.I am learning python as a part of my Project work.--
On 10/5/06, Luke Paireepinart <[EMAIL PROTECTED] > wrote:Asrarahmed Kadri wrote:
> Its something very close.
> What I want is:
>
> 1
> 1 1
> 1 2 1
> 1 3 3 1
> 1 4 6 4 1
>
> This can be done using arrays, right or is there any other way??
They're not arrays, they're lists!
arrays imply contiguous memory blocks and single data types.
Lists are neither of these.
> My logic in C is:
>
> int arr[5][5];
> for (i=0;i<5;i++)
> {
> flag = 0;
> for (j=0;j<=i;j++)
> {
> if (flag == 0 || j == i) // print 1 if the array element is the
> first or the last number
> {
> arr[i][j] = 1;
> flag = 1;
> }
> arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
> }
Yes, you could do this in Python.
I'm guessing it'd be something like this:
lst = []
for x in range(5):
tmp = []
for y in range(x):
if y == 0:
tmp.append(1)
else:
tmp.append(tmp[y-1]) #this line would be different
lst.append(tmp)
That's the best I can do.
HTH,
-Luke
To HIM you shall return.
--
To HIM you shall return.
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor