请教:int f(int x) {if (x > 0) {return x * f(x-1);} else {return 1;} }

由于函数f和运行(也就是说变数和返回值得关系)相同,将此程序用不使用循环调用(recursive call)的函数g进行再定义。怎么做?有关overflow的不需要考虑。
2.有关函数定义的问题
int f(int a){ a := a + 1;
{ int b; b := 2;
{ int a; a := 3; b := a + b + 4; }
return a + b;
}
}
1) 求式f(5)的值.
2) 在不改变函数f的情况下,把上面函数定义的第3行
{ int a; a := 3; b := a + b + 4; }
的[int a]改成[int b],对上面的函数进行再定义。

3
实行下面的if文后,1),2),3)各自是什么样的状况?
1) if (0 == 0) { y := 1; } else { y := loop(0); }
2) if (1 == 0) { y := 1; } else { y := loop(0); }
3) if (loop(0) == 0) { y := 1; } else { y := 0; }
函数loop的定义如下:
int loop(int x) { while (x == x) { x := -x; } return 0; }

第1个回答  2009-05-22
0
第2个回答  2009-05-22
K
相似回答