![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
递归函数
C程序设计(递归函数)
码字创文
我是网络世界中的1bit,努力绽放1bit的光芒。感谢您的点赞、评论、收藏!
展开
-
C语言 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数
【代码】C语言 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。原创 2022-10-09 15:07:06 · 5627 阅读 · 2 评论 -
C语言 用递归方法计算n阶勒让德多项式的值
【代码】C语言 用递归方法计算n阶勒让德多项式的值。原创 2022-10-04 15:53:00 · 4579 阅读 · 1 评论 -
C语言 输出杨辉三角形前十行
#include <stdio.h>#define M 10void main(){ int a[M][M],i,j; for(i=0;i<M;i++){ for(j=0;j<=i;j++){ if(i==j||j==0) a[i][j]=1; else a[i][j]=a[i-1][j]+a[i-1][j-1]; } } for(i=0;i<M;i++){原创 2021-03-26 12:35:16 · 2949 阅读 · 0 评论 -
C语言 递归算法计算m与n的最大公约数
递归公式如下:#include <stdio.h>int fun(int m,int n){ int k; if(n==0){ k=m; }else{ k=gcd(n,m%n); } return k;}void main(){ int m,n; printf("请输入m和n两个数:"); scanf("%d%d",&m,&n); printf("最大公约数为:%d",fun(m,n));}...原创 2021-06-06 22:16:36 · 7955 阅读 · 3 评论 -
C语言 计算斐波那契数列单项值
1,1,2,3,5,8,13,21,34,55依次后一个数字与前一个数字相加#include <stdio.h>int fib(n){ if (n==1 || n==2){ return 1; } return fib(n-1) + fib(n-2); }int main(){ int n; printf("请输入一个整数:\n"); scanf("%d",&n); printf("%d",fib(n)); return 0;}...原创 2021-05-14 00:08:10 · 840 阅读 · 1 评论 -
C语言 1到100之间的数值运算
求1+(1+2)+(1+2+3)…+(1+2+3+…100)的值#include <stdio.h>void main(){ int i,n,s1=0,s2=0; for(i=1;i<=100;i++){ //1+(1+2) s1=s1+i; // 1 3 s2=s2+s1;// 1 4 } printf("1+(1+2)+(1+2+3)...+(1+2+3+...100)的值为:%d",s2);}求1+2+3+…+100的值#include <stdi原创 2021-03-25 23:40:53 · 6831 阅读 · 1 评论 -
C语言 计算n的阶乘
#include<stdio.h>int fun(int n){ int f; if(1==n||0==n) f=1; else f=fun(n-1)*n; return(f);}void main(){ int n; int x; printf("请输入一个正整数:"); scanf("%d",&n); x=fun(n); printf("%d的阶乘为:%d\n",n,x);}...原创 2021-05-07 12:36:28 · 1651 阅读 · 0 评论 -
C语言 计算s=1²+2²+3²+…+n²的值
#include<stdio.h>long fun(int n){ long s; if(n==1){ s=1; }else{ s=fun(n-1)+n*n; } return s;}void main(){ int n; printf("请输入一个数:"); scanf("%ld",&n); printf("%ld",fun(n));}原创 2021-04-30 23:23:08 · 6744 阅读 · 2 评论 -
C语言 求10~99之间所有素数的和
//求10~99之间所有素数的和#include <stdio.h>int fun(int n){ int i; for(i=2;i<=n-1;i++){ if(n%i==0){ return 0; } } return 1;} void main(){ int n,sum=0,flag; for(n=10;n<99;n++){ flag=fun(n); if(flag==1){ sum+=n; } } printf("%d",原创 2021-03-29 23:58:38 · 2160 阅读 · 0 评论 -
C语言 计算学生年龄
有5个学生坐在一起,问第5个学生多少岁,他所比第4个学生大2岁,问第4个学生岁数,他说比第3个学生大2岁,问第3个学生岁数,他说比第2个学生大2岁,问第2个学生岁数,他说比第1个学生大2岁,问第1个学生岁数,他说是10岁。设计一个函数描述上述递归过程,并采用主函数调用的方式,输出第5个学生的年龄。分析如下:#include <stdio.h>int age(int n){ int s; if(n==1){ s=10; }else{ s=age(n-1)+2;原创 2021-03-29 12:35:19 · 4166 阅读 · 1 评论 -
C语言 计算x的n次幂
#include<stdio.h>/*eg:输入3 2 x=3,n=2 3的2次幂scanf("%d%d",&x,&n);输入3 2后,下一步的int ret=outpow(x,n)传递到函数体int outpow(int x, int n),因为n等于2,所以执行x*outpow(x, n - 1) 开始递归,x*outpow(x, n - 1),把x=3,n=2放进去后得到3*outpow(3,1),再传到函数头新一轮递归,新一轮累计计算,所以第二轮得到3原创 2021-03-29 12:36:03 · 16770 阅读 · 0 评论 -
C语言 输入10,依次-1输出
#include <stdio.h>void test(int n){ if(n==0){ return; } printf("n=%d\n",n); test(n-1);} int main(){ test(10); return 0;}原创 2021-03-28 01:57:24 · 1380 阅读 · 1 评论 -
C语言 计算n*(n+1)/2的值
#include <stdio.h>// 1 3 6 10 15 21 28int sum(int n){ if(n==1){ return 1; } return sum(n-1)+n;}int main(){ int x; int s; printf("请输入一个整数(大于0):\n"); scanf("%d",&x); s = sum(x); printf("%d",s); return 0;}#include <stdi原创 2021-03-28 01:55:25 · 3484 阅读 · 0 评论 -
C语言 写一个程序实现一个函数PrintN,使得传入一个正整数为N的参数后,能顺序打印从1到N的全部正整数
方法一:#include <stdio.h>void PrintN(int N){ if(N){ PrintN(N-1); printf("%d\n",N); } return;}int main(){ int N; printf("请输入一个数:\n"); scanf("%d",&N); PrintN(N); return 0;}方法二:#include <stdio.h>void PrintN(int N){ int .原创 2021-03-27 23:07:00 · 6717 阅读 · 3 评论 -
C语言 计算1+2+3+…+n的值
#include <stdio.h>int sum(int n){int i;int s=0; for(i=1;i<=n;i++){ s += i; } return s;}int main(){int x;int a; printf("请输入一个整数:\n"); scanf("%d",&x); a= sum(x); printf("%d\n",a); return 0; }原创 2021-03-28 01:56:02 · 11371 阅读 · 3 评论