在R中,如果没有控制流函数(for、while、if),如何找到1000以下的所有毕达哥拉斯三元组?

在R中,如果没有控制流函数(for、while、if),如何找到1000以下的所有毕达哥拉斯三元组?,r,recursion,pythagorean,R,Recursion,Pythagorean,不使用任何控制流 语句,例如,if,while,用于编写一个R函数,该函数列出了所有小于1000的三元组{a,b,c}和a

不使用任何控制流 语句,例如,
if
while
,用于编写一个R函数,该函数列出了所有小于1000的三元组
{a,b,c}和a
。除了知道哪个函数会有帮助之外,我不知道如何解决这个问题。我猜这是某种递归。

#只是因为我觉得这很好
# Just because I think this is pretty
xx <- (1:1000) ^2
xy <- combn(xx,2)
xz <- rbind(xy, colSums(xy))
xp <- xz[, xz[3,] %in% xx]
sqrt(xp)

是的,递归可以做到。试一试,然后回来,否则你可能得不到什么帮助。在尝试在R中实现之前,考虑一下你的函数在英语中是如何工作的可能会有帮助。