lzth.net
当前位置:首页 >> C语言如何用递归算法求1!+2!+3!+...n! >>

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); }

#include<stdio.h> int fun(int n){ if(n==1)return 1; else return fun(n-1)+n; } int main(){ int n; printf("请输入n的值:"); scanf("%d",&n); printf("%d\n",fun(n)); return 0; }

你好!#include int Sum(int n) { int sum = 0; if(n == 0) return 0; return n + Sum(n - 1);}int main() { printf("%d\n",Sum(100)); return 0;}如有疑问,请追问.

#includelong fun(int n)//递归单个阶乘 { if(n == 1) return 1; else return fun(n - 1) * n;}int main(){ int n, i; long num = 0; scanf("%d", &n); for(i = n; i > 0; i--)//累加阶乘 num += fun(i); printf("%ld\n", num);}

int N(int x) { if(x==0) { return 1; }else{ return x*N(x-1) } } int iRet=0; for(int i=1;i<=n;i++) { iRet += N(i); }

#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)测试的 你自己看看好不好咯.

int foo(int n) { if(n==1) return 1; else { return f(n-1)+n; } }

-### 递归函数有两个基本要素:一个是描述问题规模逐步缩小的递归算法,另一个是描述基本情况的递归终止条件 int Sum(int n) { if(n==1) return 1; else return Sum(n-1)+n; }

我觉得如果是输入一个数字n计算从1~n直接全部数字的和可以把收尾相加作为一组*组数可以推出公式(n+1)*n/2比如9!=45(9+1)*9/2=45比如20!=210(20+1)*20/2=210

#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

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com