int fun int nif n 1 return

2021-03-10 18:06:34 字数 1960 阅读 2324

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代表...