老王有一只长方形的电烤锅,能同时烤2只肉饼,每只肉饼需要正反两面各烤1分钟才能烤熟。老王非常精明,总能通过合理调度,在最短的时间内烤出肉饼。请你编写程序,输入肉饼的数量,计算老王最快用多长时间烤出这些肉饼。
输入格式
肉饼数量(大于0)
输出格式
时间(分钟)
输入样例1
1
输出样例1
2
输入样例2
2
输出样例2
2
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
思路:
如果 n=1,则只有一个肉饼需要烤制,所需时间为 2 分钟。
如果 n≥2,则老王可以一次性将两个肉饼放入电烤锅中烤制。因此,我们可以分成两组来烤制所有的肉饼。对于每一组而言,可以同时放入两个肉饼,这意味着每组所需的总时间为 2 分钟
如果共有偶数个肉饼,那么每组肉饼数量相等,一共有 n/2 组;如果共有奇数个肉饼,则最后一组只有一个肉饼,需要额外增加 1分钟的时间。因此,总时间为 2×(n/2) 或 2×(n/2)+1 分钟。
代码:
#include <stdio.h>
int main() {
int n, k, r;
scanf("%d", &n);
if (n == 1)
{
printf("2\n");
} else {
k = n / 2;
r = n % 2;
if (r == 0) {
printf("%d\n", k * 2);
} else {
printf("%d\n", k * 2 + 1);
}
}
return 0;
}