int fun(static int n) {if(n==1)return 1; else return(n+fun(n-1)); } main() {int x; scanf("%d",&x);

int fun(static int n)
{if(n==1)return 1;
else
return(n+fun(n-1));
}
main()
{int x;
scanf("%d",&x); x=fun(x)+fun(x);printf("%d\n",x);
}
执行程序时,给变量x输入10,程序输出结果,详细解及思路

你好!!!
这是递归的例子:
x=fun(x)+fun(x);先执行第一个fun(x),假如我们输入的是4(输入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
20
Press any key to continue
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-30
递归调用。。

七级的这个家伙解释得相当详细,也是正确的。

...{if(n==1)return 1; else return(n+fun(n-1)); } main() { int x...
第一次进入:x==10,因为x!=1,执行else return(n+fun(n-1)); 语句,返回10+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-...

...{if(n==1)return 1; else return(n+fun(n-1)); } main() {int x...
你好!!!这是递归的例子:x=fun(x)+fun(x);先执行第一个fun(x),假如我们输入的是4(输入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)也是如此!!测...

#include <stdio.h> int fun(int n) { if(n==1)
include <stdio.h>int fun(int n){if(n==1) return 1;else return(n+fun(n-1));}main(){ int x;scanf(“%d”,&x);x=fun(x);printf(“%d\\n”,x);return 0;}我运行的结果是55

c语言编程题,求e的近似值,e=1\/1!+1\/2!+1\/3!+...+1\/n!,累加项小于1_百度...
正确的公式为:e=1+1\/1!+1\/2!+1\/3!+...+1\/n!代码实现如下:include<stdio.h> int fun(int n){ if(n == 1)return 1;return n*fun(n-1);} int main(){ double sum =1.0 ;int i = 1;while((1.0\/fun(i))>=1e-8){ sum +=(1.0\/fun(i));i++;} printf("%.8...

在C语言中用递归调用的方法求n!
include <stdio.h> int Func(int n){ if(n < 2)return 1;else return n*Func(n-1);} int main(){ int n = 5;printf("n! = %d\\n",Func(n));return 0;} 执行过程:-》Func(5)-》5*Func(4)-》5*(4*Func(3))-》5*(4*(3*Func(2)))-》5*(4*(3*(2*Func(1...

用C语言求1到N的阶层 的累加和
思路:先定义一个函数用来计算一个数的阶乘,在从1到N循环依次就其累加和,最后输出累加和即可。参考代码:例如求1到3的阶乘累加和。include "stdio.h" int fun(int n){if(n==1) return 1;else return n*fun(n-1);} #include "math.h"int main() {int n,sum=0,i;scanf("%d",&n)...

c++ n个数求和
if(n==1)return 1;else return Fun(n-1)+n;} 2、对程序员的编写稍微繁琐,但运行效率稍高于第一种:int Fun(int n){ int r=0,i;for(i=1;i<=n;i++)r+=i;return r;} 3、对程序员来讲是最复杂的,需要自己进行推理计算得到公式,但运行效率是最高的:int Fun(int n){ return ...

用递归方法求n个数的平方和
int result = fun(4);System.out.println(result);} private static int fun(int n) { if(n==1){ return 1;}else{ return fun(n-1)+n*n;} }

c语言1+2+3+...+n,用函数写,不直接写怎么写.
int fun(int n){ if(n==1)return 1; else return n+fun(n-1);}int main(){ int val=0; printf("Please enter a nmuber ,the computer will output 1 + 2 + 3 +... the value of + n\\n"); scanf("%d", &val); printf("1+2+3+4+...+n = %d\\n", fun(val)...

int f(int n){ return (n*f(n-1)); }这个函数有错么?正确的怎么写啊...
你这是一个递归函数,递归函数应该有一个函数出口,就是最简单的那种情况,比如当n==1时,返回1,这样程序才不至于无限制的运行下去。写成类似下面的程序段。int f(int n){ if(n==1)return 1;else return (n*f(n-1));}

相似回答