用递归思想求某等差数列第n项(键盘输入n的值),其中,等差数列自己设计
1、编写程序之前,首先是了解思路,关于等差数列有 an = a0 + (n -1)*d ,即满足一个等差数列需要知道其首项a0 和 公差 d
2、程序拆分,所谓递归,简单可以理解某n项与n-1项存在一定递归关系,最终满足最小项(即最终条件成立如a0是一个确定的值),程序根据递归关系逐级返回求出最终结果。
3、等差数列n与n-1项存在递归关系: an = an-1 + d;
4、编程:
#include <stdio.h>
#define A0 1 //数列首项
#define D 2 //公差
int fun(int n); //递归函数声明
int main(int argc , char **argc)
{
int n = 0;
printf("输入数列项: ");
scanf("%d",&n);
printf("数列第 %d 项的值为: %d \n",n ,fun(n));//函数调用
return 0;
}
int fun(int n) //函数定义
{
if( n == 0) //递归的最终条件 ,返回数列首项A0
return A0;
int an = fun(n-1) + D; //递归关系 第n项与 第n-1项满足 an = an-1 + d
return an; //递归返回之后,返回an最终结果 ,这里上下两句也可以合并为一行 return fun(n-1) + D;
}