#include <stdio.h>
int Time;
double price=2.3;
double charge(n,Time)
{
if(Time<=23&&Time>5)
{
if(n<=3)
{
return 13;
}
else
{
return charge((n-1),Time)+price;
}
}
else
{
if(n<=3)
{
return 13;
}
else{
return charge((n-1),Time)+1.2*price;
}
}
}
int main()
{
double price1=charge(12,9);
double price2=charge(12,18);
printf("%.2f\n",++price1 + ++price2);
return 0;
}
以上代码也可以实现计算打车总费用,不过对于这样的代码不知道有没有什么问题。
同时当在23点之后和五点之前,3公里内的费用该怎么计算。
请高手帮忙解决!谢谢!
代码你可以看看同学代码,有些代码写的很好,自己研究一下就行了。
递归的使用条件是,一个函数本身是一个递归函数,比如斐波那契数列。递归的使用说白了,仅仅是将一个递归函数用计算机语言表示出来。你如果能够找到一个问题中的递归的规律,那么写出它的初始值,表达式,然后翻译成C代码。最重要的是你需要发现数学规律。翻译只是个简单活。
F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)
这是斐波那契数列的表达式。你把n的取值范围作为多重if语句的条件,返回值是函数表达,就能写出来。
反正只要你能找到形如 F(n)=F(n+1)..... 或者F(n)=F(n-1).......的规律,就可以使用递归。