老师根据自己的情况做了如下记录:
-
如果停在1级区域,停车时间在30分钟以内的免费;从30分钟后开始计算收费计时N,120分钟以内的部分按每15分钟1元的标准计费,超过120分钟的部分按每15分钟1.5元的标准计费,不足15分钟的部分按比例收费,保留小数点后1位;每次收费上限是50元。
-
如果停在2级区域,停车时间在30分钟以内的免费;从30分钟后开始计算收费计时N,120分钟以内的部分按每15分钟0.5元的标准计费,超过120分钟的部分按每15分钟1元的标准计费,不足15分钟的部分按比例收费,保留小数点后1位;每次收费上限是30元。
-
采用Java以及C语言来编写程序。、
-
C语言: -
#include <stdio.h> int main() { int area, time; float fee = 0.0; scanf("%d %d", &area, &time); if (area == 1) { if (time <= 30) { fee = 0.0; } else if (time <= 120) { fee = (time - 30) / 15 * 1.0; fee += (time - 30) % 15 / 15.0 * 1.0; fee = fee > 50.0 ? 50.0 : fee; } else { fee = 6.0; // 30 minutes free + 8 intervals of 15 minutes each fee += (time - 120) / 15 * 1.5; fee += (time - 120) % 15 / 15.0 * 1.5; fee = fee > 50.0 ? 50.0 : fee; } } else if (area == 2) { if (time <= 30) { fee = 0.0; } else if (time <= 120) { fee = (time - 30) / 15 * 0.5; fee += (time - 30) % 15 / 15.0 * 0.5; fee = fee > 30.0 ? 30.0 : fee; } else { fee = 3.0; // 30 minutes free + 8 intervals of 15 minutes each fee += (time - 120) / 15 * 1.0; fee += (time - 120) % 15 / 15.0 * 1.0; fee = fee > 30.0 ? 30.0 : fee; } } printf("%.1f\\n", fee); return 0; }
Java:
-
import java.util.Scanner; public class ParkingFeeCalculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int area = scanner.nextInt(); int time = scanner.nextInt(); float fee = 0.0f; if (area == 1) { if (total_time <= 30) { fee = 0.0f; } else if (time <= 120) { fee = (time - 30) / 15 * 1.0f; fee += (time - 30) % 15 / 15.0f * 1.0f; fee = fee > 50.0f ? 50.0f : fee; } else { fee = 6.0f; fee += (time - 120) / 15 * 1.5f; fee += (time - 120) % 15 / 15.0f * 1.5f; fee = fee > 50.0f ? 50.0f : fee; } } else if (area == 2) { if (time <= 30) { fee = 0.0f; } else if (time <= 120) { fee = (time - 30) / 15 * 0.5f; fee += (time - 30) % 15 / 15.0f * 0.5f; fee = fee > 30.0f ? 30.0f : fee; } else { fee = 3.0f; // 30 minutes free + 8 intervals of 15 minutes each fee += (time - 120) / 15 * 1.0f; fee += (time - 120) % 15 / 15.0f * 1.0f; fee = fee > 30.0f ? 30.0f : fee; } } System.out.printf("%.1f\\n", fee); } }