第四周《C语言及程序设计》实践项目5 认识递归

Posted weixin_35827498

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四周《C语言及程序设计》实践项目5 认识递归相关的知识,希望对你有一定的参考价值。

【项目-递归函数】

/*  
 * Copyright (c) 2016, CSDN学院  
 * All rights reserved.  
 * 文件名称:【项目-递归函数】 .cpp  
 * 作    者:张易安  
 * 完成日期:2016年 9 月 15 日  
 * 版 本 号:v1.0  
 *  
 * 问题描述:(1)立方累加和:用递归函数求f(n)=13+23+...+n3,要求先将f(n)数学表达式表示成递归的形式,然后再编程序实现。 
 */
#include<stdio.h>
int cube(int n);
int main()

	int n;
	printf("请输入一个数:\\n");
	scanf("%d",&n);
	printf("f(n)=%d\\n",cube(n));
	
	return 0;
  
int cube(int n)

	if(n==1)
	  return 1;
	else 
	  return n*n*n+cube(n-1);

运行结果


(2)

/*  
 * Copyright (c) 2016, CSDN学院  
 * All rights reserved.  
 * 文件名称:【项目-递归函数】 .cpp  
 * 作    者:张易安  
 * 完成日期:2016年 9 月 15 日  
 * 版 本 号:v1.0  
 *  
 * 问题描述:写出求1?3?...?n的递归式,并编写出递归函数求解。 。
 */
#include<stdio.h>
long f(int);
int main()

	int n;
	long y;
	printf("请输入一个数:");
	scanf("%d",&n);
	if(n%2==0)
	  y = f(n);
	else
	  y = f(n-1);
	printf("%d以内的奇数积是:%ld\\n",n,y);
	
	return 0;

long f(int n)

	long s;
	if(n==1)
	  s=1;
	else
	  s=f(n-2)*n;
	return s;
运行结果



(3)

/*  
 * Copyright (c) 2016, CSDN学院  
 * All rights reserved.  
 * 文件名称:【项目-递归函数】 .cpp  
 * 作    者:张易安  
 * 完成日期:2016年 9 月 15 日  
 * 版 本 号:v1.0  
 *  
 * 问题描述:(3)编程序,用递归函数求出两个数的最大公约数。(包括编main函数,调用定义的递归函数)
 */
#include<stdio.h>
int gcd(int a,int b);
int main()

	int n,m;
	printf("请输入两个数字:\\n");
	scanf("%d %d",&n,&m);
	printf("这两个数的最大公约数为:\\n");
	printf("%d",gcd(n,m));
	
	return 0;

int gcd(int a,int b)

	int i,j;
	if(a<b)
	
		i=a;
		a=b;
		b=j;
	
	if(b==0)
	  j=a;
	else
	  j=gcd(b,a%b);
	  
	return j;
	  
运行结果

(4)

留着...

以上是关于第四周《C语言及程序设计》实践项目5 认识递归的主要内容,如果未能解决你的问题,请参考以下文章

第四周《C语言及程序设计》实践项目32 二维数组及其定义

第四周《C语言及程序设计》实践项目32 二维数组及其定义

第四周《C语言及程序设计》实践项目43 从文本文件中读入数据

第四周《C语言及程序设计》实践项目11 体验结构体

第四周《C语言及程序设计》实践项目11 体验结构体

第四周《C语言及程序设计》实践项目16 数组的引入