totalDirection = 1540 м
1-й КМ = 10
2-й КМ = 8
Другие (нормальные) КМ = 5
Как мне рассчитать этот лог c? Пользователи должны заплатить 10 долларов за 1 км, затем 2 нс км за 8 долларов, а за остальные 5 долларов. model.startUpCharge
- массив, хранилище 10 $ и 8
/// [totalDistance] is in meters
double calculateTripPrice(RideModel model, double totalDistance) {
double totalPrice = 0;
double standardPrice = 0;
totalPrice = model.normalCharge *
((totalDistance / 1000) - model.startUpCharge.length);
for (var i = 0; i < model.startUpCharge.length; i++) {
standardPrice = standardPrice + model.startUpCharge[i];
}
totalPrice = totalPrice + standardPrice;
return totalPrice;
}
1540 млн. Логи c = 1000 млн. Долл. США 10 и 540 млн. Долл. США платят 8
@ creativecreatorormaybenot ответ
ответ должно быть 50, но результат равен 5.
Проблема заключается в следующем: если я добавлю 1 метр, цена должна быть 50. 1-й километр имеет начальный заряд. не меняется
import 'dart:math' as math;
class RideModel{
final List startUpCharge;
final double normalCharge;
RideModel({this.startUpCharge,this.normalCharge});
}
main() {
calculateTripPrice(RideModel(startUpCharge: [50,51],normalCharge: 10),1);
}
double calculateTripPrice(RideModel model, double totalDistance) {
var remainingDistance = totalDistance, price = .0;
// Kilometers with special charge
for (var i = 0; i < model.startUpCharge.length; i++) {
price += model.startUpCharge[i] / 1000 * math.min(1000, remainingDistance);
remainingDistance -= math.min(1000, remainingDistance);
}
// Remaining kilometers
price += model.normalCharge / 1000 * remainingDistance;
remainingDistance = 0;
print(price);
return price;
}