yeet
This commit is contained in:
@@ -4,19 +4,47 @@ import scala.annotation.tailrec
|
||||
|
||||
object FrenchDude {
|
||||
def main(args: Array[String]): Unit = {
|
||||
|
||||
startPascal(5)
|
||||
println(" ")
|
||||
startPascal2(5)
|
||||
}
|
||||
def pascalTriangle(c: Int, r: Int): Int = {
|
||||
@tailrec
|
||||
def loop(c0: Int, r0: Int, pred: Array[Int], cur: Array[Int]): Int = {
|
||||
cur(c0) = (if (c0 > 0) pred(c0 - 1) else 0) + (if (c0 < r0) pred(c0) else 0)
|
||||
|
||||
if ((c0 == c) && (r0 == r)) cur(c0)
|
||||
else if (c0 < r0) loop(c0 + 1, r0, pred, cur)
|
||||
else loop(0, r0 + 1, cur, new Array(_length = r0 + 2))
|
||||
def startPascal(n:Int):Unit={
|
||||
pascal(Array(1),n)
|
||||
}
|
||||
def startPascal2(n:Int):Unit={
|
||||
pascal2(Array(1),n)
|
||||
}
|
||||
|
||||
//Endrekursiv
|
||||
@tailrec
|
||||
def pascal (arr:Array[Int],n:Int): Unit = {
|
||||
arr.foreach(v => print(v+" "))
|
||||
var newArr = Array[Int]()
|
||||
newArr = newArr :+ 1
|
||||
for (i <- arr.indices){
|
||||
if (i<arr.length-1)
|
||||
newArr = newArr:+ arr(i)+arr(i+1)
|
||||
}
|
||||
newArr = newArr :+ 1
|
||||
println()
|
||||
if(newArr.length <= n+1)
|
||||
pascal(newArr,n)
|
||||
}
|
||||
|
||||
if ((c == 0) && (r == 0)) 1
|
||||
else loop(0, 1, Array(1), Array(0, 0))
|
||||
//Rekursiv, aber nicht Endrekursiv
|
||||
def pascal2 (arr:Array[Int],n:Int): Unit = {
|
||||
arr.foreach(v => print(v+" "))
|
||||
var newArr = Array[Int]()
|
||||
newArr = newArr :+ 1
|
||||
for (i <- arr.indices){
|
||||
if (i<arr.length-1)
|
||||
newArr = newArr:+ arr(i)+arr(i+1)
|
||||
}
|
||||
newArr = newArr :+ 1
|
||||
println()
|
||||
if(newArr.length <= n+1)
|
||||
pascal2(newArr,n)
|
||||
println()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user