【项目-递归函数】
/*
* 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)
留着...