出租车计费

出租车计费
描述:

起步价6元,里程小于等于2公里时间少于10分钟,收取起步价,大于2公里或者时间超过10分钟后,同时按照两种计费方式计算:
(1)按里程计算:每0.5公里收取0.7元(不足0.5公里不计费),大于7公里后,在此基础上,每公里再多收取0.7元作为返程费(不足1公里不计费);
(2)按照时间计算:每3分钟收取1.4元(不足3分钟不计费)
最终,以二者中较大者作为最终收取费用。

 

输入公里数(浮点数)和时间(整数,单位分钟),输出价格(保留小数点后1位)

运行时间限制: 无限制
内存限制: 无限制
输入:

输入公里数(浮点数)和时间(整数,单位分钟),以空格隔开

输出:

输出价格(保留小数点后1位)

样例输入:
13.4 50
样例输出:
25.6
答案提示:

注意:

1、必须按到题目要求输出价格(保留小数点后1位)即可,不要有任何其他输出,例如下面的语句会导致答案错误:

C&C++:printf("请输入一个整数");

Java:System.out.println("input a Interger Number");

2、对于C&C++,不要使用VC的预编译,可以拷贝:stdafx.h下面的2行代码:
#include 
#include 

提交的代码去掉#include "stdafx.h",避免编译失败。

3、对于C语言,在创建VC文件时应该命名**.c,不要命名**.cpp,或者C语言和C++语言的差异,导致在本地按到C++编译通过的,提交后编译可能失败


#include 
#include
using namespace std;
float Calculation(const float &fDistance , const int & iMinutes)
{
   float fResult = 0;
   float fMinuteResult = 0;
   float fDistaceResult = 0;
   if(fDistance <= 2 && iMinutes <= 10)
   {
	   fResult = 6;
   }else
   {
      // By Distance
       if(fDistance > 2)
       {
    	  float  fDistanceTemp = fDistance - 2;
    	  int iDistanceNum = fDistanceTemp / 0.5;
    	  fDistaceResult = iDistanceNum * 0.7;
    	  if(fDistance > 7)
    	  {
    		  iDistanceNum = (fDistance- 7) / 1 ;
    		  fDistaceResult += iDistanceNum * 0.7;
    	  }
       }
	  //By Time
	   if(iMinutes > 10)
	   {
		   int iMinutesNum = (iMinutes - 10) / 3;
		   fMinuteResult = iMinutesNum * 1.4;
	   }
	   if(fMinuteResult >= fDistaceResult)
	    {
		   fResult = 6 + fMinuteResult;
	    }
	   else
	   {
		   fResult = 6 + fDistaceResult;
	   }
   }
   return fResult;
}
int main()
{
	float fDistance ;
	int iMinutes ;
	std::cin>>fDistance>>iMinutes;
	printf("%.1lf",Calculation(fDistance,iMinutes));
	return 0;
}





你可能感兴趣的:(简单面试上机编程题)