百度
360搜索
搜狗搜索

递归函数c语言求和,1-100用c语言的递归法求和详细介绍

本文目录一览: 1-100用c语言的递归法求和

#include

int sum(int n)

{

if (n==1) return 1;

else return n+sum(n-1);

}

int main(){

int i=100;

printf("%d\n",sum(100));

return 0;

}

void a()

{static int sum=0,n=1;

sum=sum+n;

n++;

if(n<=100)

a();

else printf("%d",sum);

}

1、首先本题的思路已经给出,要求用递归算法。

2、程序源代码如下:

#include

int sum(int n);

int main()

{

int i=100;

printf("1~%d的和为:\n",i);

printf("%d\n",sum(100));

return 0;

}

//下面是一个递归求和函数

int sum(int n)

{

if (n==1)

return 1;

else

return n+sum(n-1);

}

3、程序的输出结果如下:

C语言怎样用递归方法编写程序 求s=1!+2!+3!+...10!

#include

int n,t=1,s=0;

void sum_fac(int k)

{if(k<=n)

{s+=t;

t*=k;

sum_fac(k+1);

}

}

int main ()

{ scanf("%d",&n);

sum_fac(1);

printf("%d\n",s);

return 0;

}

下面是测试的结果:

测试结果

思路:先通过程序获得阶乘的值,之后再将阶乘相加,求阶乘时和相加时都用递归的写法

首先是求阶乘:

int factorial(int index){

int sum = 0;

if (index == 1){

sum = 1;

}else{

sum = index * factorial(index-1);

}

return sum;

}

之后再求和:

int add_recursion(int maxnum){

int sum = 0;

if (maxnum == 1){

sum = factorial(maxnum);

}else{

sum = factorial(maxnum) + add_recursion(maxnum-1);

}

return sum;

}

下面是完整的代码:

完整代码

提供思路,如果使用递归,主要针对阶乘,因此,在主函数里提供十个数相加,用循环,然后重新定一个函数,在函数里提供递归的算法,即不断调用直至结束得到结果,然后相加就行。

如果不是使用递归,可使用上一次的结果乘以新增的数字,然后依次相加即可。

c语言用递归法求1!+2!+3!+4!+5!+6!

main函数调用的时候n传6就是求到6!的和了。
#include "stdafx.h"
#include

long fac[7]={0};//定义存储阶乘的全局数组

int getFac(int n){//递归求阶乘

if(fac[n]!=0)return fac[n];

else if(n==1){

fac[1]=1;return fac[1];

} else if return fac[n]=n*getFac(n-1);

}

int getSum(int n){//递归求和

if(n<0)return -1;//输入n非法

if(n==0) return 0;

else return getFac(n) + getSum(n-1);

}

int main(int argc, char* argv[])

{

printf("1!+2!+3!+4!+5!+6!=%d\n",getSum(6));//调用

return 0;

}

#include

int f(int x){

if(x==1) return 1;

return x*f(x-1);

}

int main()

{

int sum=0;

for(int i=1;i<=6;i++)

{

sum=sum+f(i);

printf("f(%d)=%d\n",i,f(i));

}

printf("sum=%d",sum);

return 0;

}

void main()

{int sum=0;

int temp=1;

for(int n=1;n<7;n++)

{

for(int m=1;n
<m+1;m++)
{

temp*=m;

}

sum+=temp;

temp=1;

}

printf("1!+2!+3!+4!+5!+6!=%d",sum);

}

// fac的作用是求i的阶乘

int fac(int i)

{

if(i == 1)

return 1;

else

return i*fac(i-1);

}

int main()

{

int i = fac(1)+fac(2)+fac(3)+fac(4)+fac(5)+fac(6);

}

private int f(int n)

{

if(n==1)

return 1;

if (n > 1)

return n * f(n - 1) ;

return 0;

}

int main()

{

int s=0;

for(int i=1;i<=6;i++)

s+=f(i);

printf("%d",s);

}

思路:先用递归求出一个数的阶乘,接着for循环累加求和。

参考代码:

#include

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); return 0;}/*运行结果:873*/

阅读更多 >>>  malloc(sizeof)是什么意思,ps=(stu)malloc(sizeof(stu)); 是什麽意思

</m+1;m++)

C语言 递归求和

#include

int sum(int n)

{int x;

scanf("%d",&x);

if(n==1)return x;

return x+sum(n-1);

}

int main()

{int i,k,a[100];

for(i=0;1;i++)

{

scanf("%d",&k);

a[i]=sum(k);

if(k==1&&a[i]==-1)break;

}

for(k=0;k<=i;k++)

printf("%d\n",a[k]);

return 0;

}

递归 1到n 求和 C语言

//递归求和函数long sum(long);
long sum(long n)
{
if(n!=1)
return sum(n-1)+n;
return 1;
}
long
power(int
n)
{long
f;
if(
n>1&&n<101)
f=n+power(n-1);
else
f=1;
return(f);
}
main()
{int
n=100;
long
y;
y=power(n);
printf("%ld",y);
}
int fun(int n){
if(n==1)
return 1;
else
return n+fun(n-1);
}
#include

long sum(int n){

if(n)

return sum(n-1)+n;

return 0;

}

main(){

int n;

scanf("%d",&n);

printf("%ld\n",sum(n));

}

long power(int n)

{long f;

if( n>1&&n<101)

f=n+power(n-1);

else f=1;

return(f);

}

main()

{int n=100; long y;

y=power(n);

printf("%ld",y);

}

#include "stdio.h"

main()

{int i,sum=0;

for(i=1;i<=100;i++)

sum=sum+i;

printf("%d",sum);

}

这个是简单的求1~100的和的小程序,如果你需要N为更大的数那么把程序中的100换成你需要的数就可以,希望能帮你的忙!

C语言用递归方式求n个数的和

#include

#define N 10

double a[N];

double add(double b,int i)

{

if(i)

return b+add(a[i-1],i-1);

return a[0];

}

void main()

{

int i;

printf("enter n numbers:\n");

for(i=0;i
<n;i++)
scanf("%lf",&a[i]);

printf("The result:%lf\n",add(a[N-1],N-1));

}

改变N的值既可以实现任意个数的相加。

#include

#include

using

namespace

std;

int

add(int

n);

int

main()

{

int

i=100;

int

b;

b=add(100);

cout<
<b<<endl;
}

int

add(int

n)

{

if(n==1)

return

1;

else

return

n+add(n-1);

},利用add()函数进行递归,这是个从1加到n的递归函数

#include

#include

using

namespace

std;

int

add(int

n);

int

main()

{

int

i=100;

int

b;

b=add(100);

cout<
<b<<endl;
}

int

add(int

n)

{

if(n==1)

return

1;

else

return

n+add(n-1);

},利用add()函数进行递归,这是个从1加到n的递归函数

累加:#include

void main ()

{

int s=0,i;

for(i=1;i<=100;i++)

s+=i;

printf("%d\n",s);

}

#include "stdio.h"

int num(int n)

{

int t;

if(n==1)

return 1;

else

{ t=n+num(n-1);

return t;

}

int main()

{

int n;

scanf("%d",&n); 输入你想要的累加的最大的数

printf("%d",num(n));

}

#include

#include

using namespace std;

int add(int n);

int main()

{

int i=100;

int b;

b=add(100);

cout<
<b<<endl;
}

int add(int n)

{

if(n==1)

return 1;

else

return n+add(n-1);

},利用add()函数进行递归,这是个从1加到n的递归函数
</b<<endl;

</b<<endl;

</b<<endl;

</n;i++)

阅读更多 >>>  java简单程序实例,求一个简单又经典的Java与数据库例子,要有源代码哦!

那位高手用C语言编到程序,递归函数求和,输入N个数出其和求

#include

int s=0;

main()

{

int sum(int n);

int n;

printf("please input n:"); /*输入要输数的个数*/

scanf("%d",&n);

sum(n);

printf("sum = %d\n",s);

}

int sum(int n)

{

int m;

if(n==0)return 0;

else

{

printf("please input a num:");

scanf("%d",&m);

s+=m;

return sum(n-1);

}

}

#include

int ni(int n)

{

int s,a;

if(n==0) return 0;

else

{

scanf("%d",&a);

s=ni(n-1)+a;

}

return(s);

}

main()

{

int a,s;

printf("请输入相加的个数 n:\n");

scanf("%d",&a);

s=ni(a);

printf("sum=%d\n",s);

}

求C语言编程: 使用递归实现奇数之和1+3+5+ … 或偶数之和2+4+6+ … 。

#include

#include

void main()

{

int sum(int n);

int k;

printf("请输入一个数字\n");

for(;;)

{

scanf("%d",&k);

if(k<1)

{

printf("请输入一个正确的数字\n");

}

else

break;

}

sum(k);

printf("sum=%d\n",sum(k));

}

int sum(int n)

{

if(n<1)

return(0);

else if(n==1)

return(1);

else

return n+sum(n-2);

}

#include

int f(int i){

int sum=i;

if(i>0) sum+=f(i-2);

return sum;

}

int F(int i){

int sum=i;

if(i>0) sum+=f(i-2);

return sum+1;

}

void main(){

int n,sum;

loop:

printf("请输入一个数:\n");

scanf("%d",&n);

if(n<0) goto loop;

else if(n%2==0) printf("%d\n",sum=f(n));

else printf("%d\n",sum=F(n));

}

#include "stdio.h"

int sum(int n)

{

if (n==1||n==2)

return n;

else return n+sum(n-2);

}

void main()

{

int n;

printf("请输入n的值: \n");

scanf("%d",&n);

while (n<=0)

{

printf("输入错误,请重新输入n的值: \n");

scanf("%d",&n);

}

printf("结果为:%d\n",sum(n));

}

计算奇数偶数之和只需一个递归函数就行,程序简单很多,如果你非要用两个的话,很容易,追问一下,我给你

#include

int fun(int );

void main()

{

int n,sum;

while(scanf("%d",&n)!=EOF) //直到你输入ctrl+z或者关闭程序才结束

{

if(n<=0)

{

printf("输入有误,请重输");

}

else

{

sum=fun(n);

printf("%d\n",sum);

}

}

}

int fun(int n)

{

int sum=n;

if(n>1)

sum+=fun(n-2);

return sum;

}

一个就可以实现!!!!!!!!!!!!!!!

#include

int sumn(int n){if(n<3)return n; return n+sumn(n-2);}int main(){int n; scanf("%d",&n); printf("%d\n",sumn(n)); return 0;}

网站数据信息

"递归函数c语言求和,1-100用c语言的递归法求和"浏览人数已经达到16次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:递归函数c语言求和,1-100用c语言的递归法求和的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!