the following JS code is supposed to output a layer of the pascal triangle :
for the input 3 the output is supposed to be : 1 3 3 1
for the input 4 the output is supposed to be : 1 4 6 4 1
but I get : 1 nan nan 1 and 1 nan nan nan 1 instead
here is the working vb.net code :
Code:
function pascal(floor){
var ar1 = [1,1];
if (floor < 2){return '1 1';}
return pascalPt2(floor,2,ar1);
}
function pascalPt2(floor,at,prevfloor)
{
var result = ""; var ar2 = [];ar2[0] = 1;
if (at == floor + 1) {for(var v of prevfloor){result = result + " " + v};return result;}
else{for (var i=0;i<at - 2;i++){ar2[i+1] = prevfloor[i]+prevfloor[i+1]};ar2[at] = 1;}
return pascalPt2(floor,at+1,ar2)
}
console.info(pascal(3))
for the input 3 the output is supposed to be : 1 3 3 1
for the input 4 the output is supposed to be : 1 4 6 4 1
but I get : 1 nan nan 1 and 1 nan nan nan 1 instead
here is the working vb.net code :
Code:
Public Class Form1
Function pascal(ByVal floor As Integer) As String
Dim ar1 = New Integer() {1, 1}
If floor < 2 Then
Return "1 1"
End If
Return pascalPt2(floor, 2, ar1)
End Function
Function pascalPt2(ByVal floor As Integer, ByVal at As Integer, ByVal prevfloor As Object) As String
Dim result = ""
Dim ar2(at) As Integer
ar2(0) = 1
If at = floor + 1 Then
For Each item As Integer In prevfloor
result &= item.ToString() & " "
Next
Return result
Else
For index = 0 To at - 2
ar2(index + 1) = prevfloor(index) + prevfloor(index + 1)
Next
ar2(at) = 1
End If
Return pascalPt2(floor, at + 1, ar2)
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox(pascal(4))
End Sub
End Class