1楼:度秒爱人
正确答案:a
本题主要考查函数的递归调
用。在做递归调用函数类型的题目专时,我们首属先要找到函数的出口和递归结束的条件。
在本题中,程序首先定义了一个fun函数,函数的形参是一个整型变量n,从后面的程序可以看出,该函数是一个递归函数。在函数体中,首先执行条件判断语句,如果条件结果为真,说明变量n为1,此时返回1,这是递归函数的出口;否则返回函数的递归调用。
在主函数中,定义一个变量x,并试图通过键盘输入的方式为变量x赋初值,然后调用fun函数,并用x作为其形参,用x保存最后的运行结果输出。
变量x的初值为10,从上面的分析我们知道,递归调用的出口是n=1,而每递归一次n的值减1,因此,函数fun递归调用了9次,其运算相当于10+9+8+7+6+5+4+3+2+1=55。因此,程序最终的输出结果是55。
2楼:神龙飞天
第一次进入bai
:x==10,因为x!
du=1,执行else return(n+fun(n-1)); 语句zhi,返回dao10+fun(
10-1)即专10+fun(9)
第二次进入属:x==9,因为x!=1,执行else return(n+fun(n-1)); 语句,返回10+9+fun(9-1)即10+9+fun(8)
.....
....
第九次进入:x==2,因为x!=1,执行else return(n+fun(n-1)); 语句,返回10+9+8+7+6+5+4+3+2+fun(2-1)即10+9+8+7+6+5+4+3+2+fun(1)
第十次进入:x==1,因为x==1,执行return 1; 语句,返回10+9+8+7+6+5+4+3+2+1。
事实上是求1+...+10的和。
结果应该是55.
3楼:澄闻网
简单的递归函数啊,有什么看不明白的呢。
4楼:匿名用户
大哥,问问题的时候也负责点好不,要不指望谁给你认真回答。
你到底想问啥?
int fun(static int n) {if(n==1)return 1; else return(n+fun(n-1)); } main() {int x; scanf("%d",&x);
5楼:猪头或火宝宝
你好!bai!!
这是递归的例子:
x=fun(x)+fun(x);先执du行zhi第一个fun(x),假如我们输入的是
dao4(输入10可能步骤很多)回;
先递答归:
fun(4)=4+fun(3)
fun(3)=3+fun(2)
fun(2)=2+fun(1)
fun(1)=1
在返回:
fun(2)=2+1;
fun(3)=3+2+1
fun(4)=4+3+2+1=10
第二个fun(x)也是如此!!
测试:4
20press any key to continue
6楼:高原的金
递归调用。。
七级的这个家伙解释得相当详细,也是正确的。
一个求n!的递归算法 float fun(int n) { if(n==1) return 1; return n*fun(n-1); }的时间复杂度为多少
7楼:兔子和小强
复杂度为o(n)
递归复杂度求法:设t(n)
则根据递归式有t(n) = 1+t(n-1)t(1) = 1
所以t(n) = o(n)
8楼:封天神奇
如果你需要具体的算法的话我打下来给你,刚才那个人答的是对的
9楼:匿名用户
怎么感觉一楼的计算方法大大的有问题啊!
若有int a21,23,4则,若有int a[][2]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为()。
1楼 感性的不逗你了 int a 3 这样就是数组应 该是a 4 3 4行3列,第一行是1 2 0,第二行是3 2 4,以此类推,所以a 2 2 是6,不懂hi我 若有int a 1 2 3 4 则 a 1 a 1 的含义分别为 2楼 百万基佬在 首先这是一个2行2列的数组,第一行12,第二行34。...
如果int"a 1,b 2,c 3,d 4,则条件表达式“a
1楼 德形兼备 当a b 成立 则结果就是 a 如果 a b 不成立 则结果要判断 c 2 c 所以这题 结果是a 1 2楼 匿名用户 条件运算符的结合性是从右到左结合的,先算 c d?c d 返回 c 3 再算 a b?a c 返回值为1。 3楼 何慧哈 先判断a b为真取a值,得等式a d c ...
c语言中int a 1,b 2,c c 1.0 b a输出结果为什么
1楼 匿名用户 结果是c的值是0 因为1 0 b 都会转换位浮点型,结果是0 5 0 5 a 也是会把a转为浮点型,结果是0 5 而c是整形,会对右边运算的结果取整,所结果就是0了。 假如 int a 1 b 2 c 3 表达式a b c的值是1还是0 为什么? 2楼 岔路程序缘 在c语言中,1代表...