c语言递归编写1+2+3+......+n

作者&投稿:郦海 (若有异议请与网页底部的电邮联系)
C语言编程:编写递归函数fac 求n!,调用该函数求s=1!+2!+3!+……+n!。n由键盘输入~

#includeint fac(int n);int main(void){ printf("input n:
"); int n, i,sum = 0; scanf("%d",&n); for(i=1;i<=n;i++) { sum += fac(i); } printf("1!+2!+...+n! = %d
",sum); return 0;}int fac(int n){ if(n==1) return n; else return n*fac(n-1);}

int fun(int m)
{
if(m==1)
return 1;
else
return m+fun(m-1);
}


void main(){
int x;
scanf("%d",&x);
printf("%d
",fun(x));
}


你自己好好分析一下,相信你能写的出来,这是最基本的!

#include<stdio.h>

int fun(int n)
{
if(n==1)
return 1;
if(n>1)
{
return fun(--n)+n;
}
}

void main()
{
int n;
printf("请出入n的值:");
scanf("%d",&n);
printf("结果为:%d\n",fun(n));
}

#include<conio.h>
#include<stdio.h>

int getResult(int n)
{
if(n==1) return 1;
return n+getResult(n-1);
}

void main(void)
{
int n,num;
scanf("%d",&n);
num=getResult(n);
printf("Result is: %d",num);

getch();
}

十级的和三级的和一级的写的程序果然是不一样啊...我来点评一下...:
先说一级的...完全....没理解题意,虽然结果一样单没用递归.

三级的还行,用了递归,但是函数名称含糊,其中判断n>1完全没必要,因为永远不会小于1的(等于1的时候就返回了.)

最后是十级的,果然....程序写的清晰.而且函数命名规范.

不一样就是不一样~

#include"math.h"
int fun(int n)
{ int s=0;
if(1==n) return(1);
if(n!=0)
{s+=fun(--n)+n ;
return s+1 ;}
}
main()
{
int n,i,j=1;
printf("\ninpt n:");
scanf("%d",&n);
i=n;
while(i--)
{ if(i==n-1) printf("%d",j++);
else printf("+%d",j++);
}
printf("\n=%d",fun(n));
}
输出 1+2+3+......+n =fun(n)
测试的 你自己看看好不好咯。

#include<stdio.h>
void main()
{
int i=1,n,sum=0;
scanf("%d",&n);
do
{
for(i=1;i<=n;i++)
sum+=i;
printf("%d",sum);
}
while(!i);
}


C语言如何用递归算法求1!+2!+3!+...n!
include\\x0d\\x0afloat fun(int n)\\x0d\\x0a{\\x0d\\x0aif(n==1) return 1;\/\/如果n=1则直接返回1\\x0d\\x0areturn n*fun(n-1);\/\/否则返回n*fun(n-1),以此计算n的阶乘,这条语句就是递归体\\x0d\\x0a}\\x0d\\x0avoid main()\\x0d\\x0a{\\x0d\\x0a int i;\\x0d\\x0a...

C语言:求一个数倒序输出,用递归怎么做
你要的是输入一个123,输出就是321嘛?void fun(int t)\/*t是输入的数*\/ { if ( t\/10 == 0 ){ printf("%d",t);return;} printf("%d",t % 10);t \/= 10;fun(t);} void main(){ int t;int i;int w;printf("输入的数是几位:\\n");scanf("%d",&w);printf("输入%d位...

用请编写递归函数,输出1,2,3,….n的全排列(n小于10),并观察n逐步增大时...
int length, int i);void swap(int a[], int i, int j);void print(int a[], int length);int main() { int i = 0, length; clock_t start, end; int a[10]; double t[10]; for (i = 0;

C语言:只自定义一个递归函数,求1!+2!+3!+...+10!,咋编?
代码文本:include "stdio.h"int f10(int m,int n){ return n<11 ? m+f10(m*(n+1),n+1) : 0;} int main(int argc,char *argv[]){ printf("1!+2!+3!+...+10! = %d\\n",f10(1,1));return 0;}

用C语言编写一个递归程序用来计算:1*2+2*3+3*4+...+(n-1)*n
long add(int n){ int t = n - 1;if(t>1){ long result = n * t;long sum = result + add(t);return sum;}else{ return n;} } 楼上的方法,如果输入的值是小于或者等于1的整数,递归会停止不了的

c语言用递归法求1!+2!+3!+4!+5!+6!
思路:先用递归求出一个数的阶乘,接着for循环累加求和。参考代码:include<stdio.h>int fun(int n){if(n==1) return 1;\/\/递归结束条件 return n*fun(n-1);\/\/递归式 } int main(){int sum=0,i;for(i=1;i<=6;i++)\/\/for循环累加求和 sum+=fun(i);printf("%d\\n",sum); ...

c语言编写递归函数求解1!+(1!+2!)+。。。+(1!+2!+。。。+n!)
include <stdio.h>int fact(int n){if(n==1)return 1; return n*fact(n-1);}int sum(int n){if(n==1)return fact(1); return fact(n)+sum(n-1);}int allsum(int n){if(n==1)return 1; return sum(n)+allsum(n-1);}int main(){int n; scanf("%d",&n); printf(...

java语言用递归输出Fibonacci数列:1 1 2 3 5 8 13 21前10个数的代码...
Fibonacci { public static void main(String[]args){ \/\/初始化变量 int n0 = 1,n1 = 1,n2;System.out.print(n0 + ""+ n1 + "");\/\/引入for循环依次执行三个表达式,限定i的取值范围为<10 for (int i = 0;i < 10;i++){ \/\/下一个数是早先的两个数的和 n2 = n1 + n0;System...

C语言如何用递归算法求1!+2!+3!+...n!
int n){ if(n==1) return 1;\/\/如果n=1则直接返回1 return n*fun(n-1);\/\/否则返回n*fun(n-1),以此计算n的阶乘,这条语句就是递归体 } void main(){ int i;float sum=0;for(i=1;i<=n;i++){ sum+=fun(i); \/\/循环调用,用sum累计 } printf("sum=%.2f\\n",sum);} ...

使用递归方法,编写一个求解S=1+2+3+…+n的函数
include "stdio.h"int fun(int num){int sum;if( num==1) sum=1;else sum=num+fun(num-1);return sum;} void main(){ int n,s;printf("n=");scanf("%d",&n);s=fun(n);printf("s=%d\\n",s);}

淅川县17857756263: 用递归算法,求1+2+3+······+n,n由键盘输入. 用C语言程序编写.
畅显汝宁: int fun(int m) { if(m==1) return 1; else return m+fun(m-1); } void main(){ int x; scanf("%d",&x); printf("%d\n",fun(x)); } 你自己好好分析一下,相信你能写的出来,这是最基本的!

淅川县17857756263: 用C语言做到题编写程序,用递归的方法求1+2+3+…+n,可设递归函数为fun ().(1)递归结束条件为n=0;(2)递推公式为n+fun (n - 1). 用C语言编程序 -
畅显汝宁:[答案] #includeint fun(int n){if(n==0){return 0;}else{return n+fun(n-1);}}void main(){int n;long sum=0;scanf("%d",&n);sum=fun(n);printf("%l...

淅川县17857756263: c语言递归编写1+2+3+......+n
畅显汝宁: #include int getResult(int n) { if(n==1) return 1; return n+getResult(n-1); } void main(void) { int n,num; scanf("%d",&n); num=getResult(n); printf("Result is: %d",num); getch(); }

淅川县17857756263: C语言如何用递归算法求1!+2!+3!+...n! -
畅显汝宁: #include<stdio.h> float fun(int n) { if(n==1) return 1;//如果n=1则直接返回1 return n*fun(n-1);//否则返回n*fun(n-1),以此计算n的阶乘,这条语句就是递归体 } void main() { int i; float sum=0; for(i=1;i<=n;i++){ sum+=fun(i); //循环调用,用sum累计 } printf("sum=%.2f\n",sum); }

淅川县17857756263: 用C语言 写一个函数用于计算1!+2!+3!+…+n!的值(使用函数递归完成) -
畅显汝宁: #include <stdio.h> int Func(int); int Sum(int); int main () {int i,n;printf("请输入n值:");scanf("%d",&n);printf("1!+2!+...+n!=%d\n",Sum(n));return 0; } int Func(int n) //递归求n! {int sum=1;if(n==1 || n==0)return 1;elsesum=n*Func...

淅川县17857756263: 在主程序中提示输入整数n,编写函数用递归的方法求1+2+3+、、、+n的值 -
畅显汝宁: 代码如下: #include<iostream> using namespace std; int D(int n,int &M) { M=M+n; if(n>=1) D(n-1,M); else return 0; } int main() { int n,M=0; while(cin>>n) { D(n,M); cout<<"从1加到"<<n<<"的和为:"<<M<<endl; } cout<<"input error!"<<endl...

淅川县17857756263: 用递归法写出1+2+3+...+100的程序(c语言) -
畅显汝宁: #include<stdio.h> int sum(int n) {return n>0?n+sum(n-1):0; } int main() { printf("1+2+...+100=%d\n",sum(100)); return 0; }

淅川县17857756263: c语言 1!+2!+3!+……20! 用函数递归法 -
畅显汝宁: #include#include int jc(int n) { int i = 1,result=1; for (i = 1; i{ result *= i; } return result; } int jcsum(int n) { if (n== 1) { return 1; } else { return jc(n) + jcsum(n - 1); } } void main() { int result = 0; result = jcsum(20); printf("1到20阶乘和结果为:%d\n", result); system("pause"); }

淅川县17857756263: 急!! 用递归函数(C语言)求1!+2!+3!+...+n! -
畅显汝宁: int N(int x) { if(x==0) { return 1; }else{ return x*N(x-1) } } int iRet=0; for(int i=1;i{ iRet += N(i); }

淅川县17857756263: c语言简单编程题..用递归方法求1+2+3+......+n并将其中素数去除后之和.
畅显汝宁: #include using namespace std; int g(int a) {int i,k; if (a<2) return 0; else if (a==2) return 1; else { k=a/2; for(i=2;i<=k;i++) if(a%i==0)break; if(i>=k+1) return 1; else return 0; } } int f(int n) {int s; if (n>1&&g(n)!=1) s=n+f(n-1); else if (n>1&&g(n)==1) s=f(n-1...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网