今日练习:
23、有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁;问第4个学生多少岁,他说比第3个学生大2岁;问第3个学生多少岁,他说比第2个学生大2岁;问第2个学生多少岁,他说比第一个到达2岁。最后问第1个学生,他说10岁。请问第2 / 3 / 4 / 5个学生多少岁?
24、用递归的方法求 n !
有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁;问第4个学生多少岁,他说比第3个学生大2岁;问第3个学生多少岁,他说比第2个学生大2岁;问第2个学生多少岁,他说比第一个到达2岁。最后问第1个学生,他说10岁。请问第2 / 3 / 4 / 5个学生多少岁?
题解思路![](https://i-blog.csdnimg.cn/direct/fe37662cf2174dd29f47324c9eba69c8.png)
运行代码
int main()
{
int age(int temp);
int number = 0;
int people_age = 0;
printf("输入想知道的第几个人:\n");
for (number = 1; number <= 5; number++)
{
people_age = age(number);
printf("第%d个人的年龄是%d岁\n", number, people_age);
}
return 0;
}int age(int temp)
{
int people_age;
if (temp == 1)
{
people_age = 10;
}
else
people_age = age(temp - 1) + 2;
return people_age;
}
运行结果![](https://i-blog.csdnimg.cn/direct/15cd0327a1e84f479476efe6099d3ca4.png)
用递归的方法求 n !
题解思路
运行代码
int main()
{
int f(int number);
int number = 0;
int temp = 0;
printf("输入要求的阶乘数:");
scanf("%d", &number);
temp = f(number);
printf("%d!=%d\n", number, temp);
return 0;
}
int f(int number)
{
int temp = 0;
if (number < 0)
{
printf("错误数据请输入大于0的数!!!");
}
else if (number == 0 || number == 1)
{
temp = 1;
}
else
{
temp = f(number - 1) * number;
}
}
运行结果![](https://i-blog.csdnimg.cn/direct/b094db2fda2e49d79749a1495dfdeb85.png)
作者讲话
未来几个月将会和大家分享C语言题目 ,包括解题思路以及代码,对于题目的解法,欢迎大家进行讨论,如有问题,也可以指出,私信也可。感谢感谢