
Obrigado pelo retorno, eu não percebe que faltava este if, mas sobre o stopifnot, o que eu notei é que retirando e colocando ele não alterava o resultado. Mauro, Por isso eu escrevi que não havia testado os códigos. Se vc quiser testar a função, tente com factorial = function(x){ stopifnot(x>=0) produto=1 if (x>1) for (i in 1:x) produto = i* produto produto } Sobre o stopifnot, leia o manual da função para entender o uso da função. b On Monday, 27 February 2012, Mauro Sznelwar wrote: Estava rodando os scripts e vi que o stopifnot(x>=0) se retirado não altera nada. No caso iterativo do factorial não funciona se fizer factorial(0)=0, como forçar para factorial(0)=1? f2 <- function(x){ stopifnot(x>=0) if(x<=1){ 1 }else{ x*f2(x-1) } }