例题:有5 个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁,问第4个学生岁数,他说比第3个学生大2岁,问第3个学生,又说比第2个学生大2岁,问第2个学生,说比第1个学生大2岁,最后问第1个学生,他说他是10岁,设计一个函数描述上述递归过程,并采用主函数调用的方法,输出第5个学生的年龄。
思路分析
阅读题意,我们可以得出这是一个等差数列的题,已知第1项是10,公差是2,求第5项数是多少。
回忆高中数学等差数列关于通项公式的知识点可以得到下面的通项公式:
an=a1+(n-1)d,a1是等差数列的首项数字,n是等差数列的第n项,d是等差数列的公差。
案例代码如下
//题目(14分)求等差数列的第n项是几
#include <stdio.h>
int Fun1(int age){
if(age==1){
return 10;//等差数列第1项数为10,也就是第1个同学的年龄
}
else{
return 10+(age-1)*2;//等差数列的通项公式为an=a1+(n-1)*d,a1为10,公差d为2
}
}
void main(){
int n=5;//题意求第5位学生的年龄,故n赋值为5
int res=Fun1(n);//调用子函数
printf("第5位同学的年龄是%d",res);
}
案例代码运行结果如下