第四周《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)

留着...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值