y=sin(sin(x));是一种递归调用吗?

来源:百度知道 编辑:UC知道 时间:2024/06/17 19:25:53
y=sin(sin(x));是一种递归调用吗?
这是原题:
近20年来, 许多计算机专家都大力推崇递归算法,认为它是解决较复杂问题的强有力的工具. 在下列关于递归的说法中, 正确的是( )。
A. 在1977年前后形成标准的计算机高级语言"FORTRAN77"禁止在程序使用递归, 原因之一是该方法可能会占用更多的内存空间.
B. 和非递归算法相比, 解决同一个问题, 递归算法一般运行得更快一些
C. 对于较复杂的问题, 用递归方式编程往往比非递归方式更容易一些
D. 对于已定义好的标准数学函数sin(x), 应用程序中的语句“y=sin(sin(x));”就是一种递归调用
为去年noip提高组20题,正解为AC呢,说明y=sin(sin(x))不是递归调用呢,为什么?
谢谢,可否看一下这一题?http://zhidao.baidu.com/question/70339809.html

这不是递归,只是嵌套。
递归是指自己调用自己的函数
比如这样的函数:

int f(int x) {
if (x == 0)
return 1;
else
return f(x-1);
}
这是个阶乘的函数

答案是C

A、主要是递归会占用栈空间,容易出错
B、不一定
C、分治法,比如快速排序
D、是否递归是函数本身决定的,不是调用决定的,y=sin(sin(sin(x)));不过是算完了a=sin(x),再算b=sin(a),再算y=sin(b)

--------------------
当初我选没选A我也忘了,“原因之一”啊……,你应该是对的,不过不是主要原因

因该说是。
因为sin函数是基本函数,我们用户可以直接调用。