程序的结果是120.但是如果把第5行的abs(1)改成1的话,则程序结果为1,不知道为什么?
下面程序的结果是120.但是如果把第5行的abs(1)改成1的话,则程序结果为1.
试分析为什么会有这不同的结果.
本人用的是BC++3.1
int fact()
{
static int i=5;
if(i=0) {return(1); }
else { i=i-1; return(( i+abs(1))*fact()); }
main(){
printf("factor or 5=%d\n",fact());
}