我对 R 很陌生,只是在玩它。我写了一些代码来计算给定两个边的可能 Heron 三角形的数量。正如我们许多人所知,苍鹭三角形的所有边和面积都是整数。在下面给出的代码中,a & b 是整数。
heron <- function(a,b)
{
d = 0
for(c in abs(a-b)+1:a+b-1)
{
area <- ((1/4)*sqrt((a^2+b^2+c^2)^2-(a^4+b^4+c^4)))
d <- ifelse(area == floor(area), d+1, d)
}
return(d)
}
代码返回错误的值。例如,heron(5,5)=2
但是当我插入a=5
,时b=5
,它给出的答案是0
. 看代码,很明显for循环和ifelse部分有问题;但我无法弄清楚,因此这个问题。提前致谢。