Я написал метод pythagoreanTriplets
в scala, используя вложенные циклы. Как новичок ie в scala, я борюсь с тем, как мы можем сделать то же самое, используя рекурсию и используя Lazy Evaluation для возвращающегося списка (Список кортежей). Любая помощь будет высоко оценена.
PS: следующий метод работает отлично.
// This method returns the list of all pythagorean triples whose components are
// at most a given limit. Formula a^2 + b^2 = c^2
def pythagoreanTriplets(limit: Int): List[(Int, Int, Int)] = {
// triplet: a^2 + b^2 = c^2
var (a,b,c,m) = (0,0,0,2)
var triplets:List[(Int, Int, Int)] = List()
while (c < limit) {
breakable {
for (n <- 1 until m) {
a = m * m - n * n
b = 2 * m * n
c = m * m + n * n
if (c > limit)
break
triplets = triplets :+ (a, b, c)
}
m += 1
}
}// end of while
triplets
}