我需要计算停车收费表的罚款。违例停放车辆的首个小时或不足一小时的罚款为二十五元。违例停泊的车辆每多停一小时或不足一小时,便会额外加收10元。我不知道如何计算每一个额外的小时。
到目前为止,我所拥有的:
if(car.getMinutesParked()-meter.getminutesPurchased()<=60)
{
totalFine = FINE;
}
else if(car.getMinutesParked()-meter.getminutesPurchased()>60)
{
totalFine = FINE + (ADDITIONAL_FINE)
}发布于 2014-04-11 04:40:36
final int delta = car.getMinutesParked() - meter.getminutesPurchased();
if (delta > 0) {
totalFine = FINE + (delta / 60)*ADDITIONAL_FINE;
}发布于 2014-04-11 04:38:28
从逻辑上想一想。你只是用文字输入了需要做的事情,所以花点时间坐下来,想一想如何把它翻译成代码。继续使用您的格式:
int totalFine = 0;
int totalTime = car.getMinutesParked();
if(totalTime - meter.getMinutesPurchased() <= 60){
totalFine = FINE;
}
else{
totalFine = FINE; // add fine for first hour
totalTime = totalTime - 60; // remove that first hour for our total time
// add our initial fine + (number of additional hours * fee per additional hour)
totalFine = totalFine + ((totalTime / 60) * ADDITIONAL_FINE);
}有一些方法可以简化代码的格式化,但我认为更好的方式是一步一步地显示正在进行的内容
发布于 2014-04-11 04:35:11
boolean firstHour = true;
int minutes = car.getMinutesParked() - meter.getMinutesPurchased();
int fineDollars = 0;
while (minutes > 0) {
if (firstHour) fineDollars += 25;
else fineDollars += 10;
firstHour = false;
minutes -= 60;
}https://stackoverflow.com/questions/22998407
复制相似问题