Some phone usage rate may be described as follows:
The first minute of a call costs
min1
cents.Each minute from the 2nd up to 10th (inclusive) costs
min2_10
cents each minute.After the 10th minute, the call costs
min11
cents for every additional minute.You have
s
cents on your account before the call. What is the duration of the longest call (in minutes rounded down to the nearest integer) you can have?
Input data:
For min1 = 3
, min2_10 = 1
, min11 = 2
, and s = 20
, the output should be phoneCall(min1, min2_10, min11, s) = 14
.
Here's why:
The first minute costs 3 cents, which leaves you with 20 - 3 = 17 cents. The total cost of minutes 2 through 10 is 1 * 9 = 9, so you can talk 9 more minutes and still have 17 - 9 = 8 cents. Each next minute costs 2 cents, which means that you can talk 8 / 2 = 4 more minutes. Thus, the longest call you can make is 1 + 9 + 4 = 14 minutes long.
I'm not sure what's wrong with my code's logic here.
int phoneCall(int min1, int min2_10, int min11, int s) {
int sum = 0;
if (s >= min1) {
sum++;
s = s - min1;
for (int i = 1; i <= 9; i++) {
if (s >= min2_10) {
sum = sum++;
s = s - min2_10;
} else
break;
}
sum = sum + s / min11;
}
return sum;
}