问题链接:CCF NOI1018 打电话。
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
某市的IC卡电话计费标准如下:首次为0.5元/3分钟(不足3分钟按3分钟计费),之后是0.2元/1分钟,不足一分钟按一分钟来算,如一个人打了6分30秒,那计费是按照7分钟来算,花费为1.3元。已知某人打一次电话花费为x元,问这个人有可能打了多长时间的电话?(精确到分钟)
输入
输入一个实数x,表示打电话的花费。
输出
输出打电话的最长时长(精确到分钟)。
样例输入
0.5
样例输出
3
数据范围限制
0<x<=100
问题分析
这个问题是一个简单的计算,价格只有一个台阶,判断一下即可。
程序说明
(略)
要点详解- 使用宏定义是一种好的做法,增加了程序的可阅读性和可修改性。
- 浮点计算结果如何取整输出是本题的一个要点。
100分通过的C语言程序:
#include <stdio.h>
#define PRICE1 0.5
#define PRICE2 0.2
#define DURATION 3
int main(void)
{
float cash;
scanf("%f", &cash);
if(cash <= PRICE1)
printf("%d\n", DURATION);
else
printf("%.f\n", ((cash - PRICE1) / PRICE2) + DURATION);
return 0;
}