Some phone usage rate may be described as follows:
The first minute of a call costs
min1cents.Each minute from the 2nd up to 10th (inclusive) costs
min2_10cents each minute.After the 10th minute, the call costs
min11cents for every additional minute.You have
scents 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;
}