兰州烧饼
题目:
兰州烧饼
烧饼有两面,要做好一个兰州烧饼,要两面都弄热。当然,一次只能弄一个的话,效率就太低了。有这么一个大平底锅,一次可以同时放入k个兰州烧饼,一分钟能做好一面。而现在有n个兰州烧饼,至少需要多少分钟才能全部做好呢?
- 输入
依次输入n和k,中间以空格分隔,其中1 <= k,n <= 100000- 输出
输出全部做好至少需要的分钟数- 提示
如样例,三个兰州烧饼编号a,b,c,首先a和b,然后a和c,最后b和c,3分钟完成
问题分析:
此题和生活十分接近,考察了学生对语段的理解和翻译能力,综合性考察强。第一次做的时候特别的蒙,觉得每次都使锅烧满,烧完一面再烧另外一面,为什么会产生最大时长和最小时长呢?
但仔细思考就会发现要求出此题就要做到锅的最大化利用。
同时也学到了要换个角度看待问题,如此题,如果只把烧饼看成单单的一个烧饼个体就很难解出此题,站在全局上来看,每一个烧饼都需烧两面,将所有的烧饼都以面数来衡量就很容易得出解题思路了。
最后还需要注意的就是特殊情况的考虑,这也是我再次回顾错题时又栽在的地方。
代码分析:
#include <stdio.h>
int main(){
int n;
int k;
int total;
int result;
while(scanf("%d%d",&n,&k)!=EOF){
total=n*2;
if(total<=k){
printf("2\n");
continue;
}
result=total/k;
if(total%k!=0)
result++;
printf("%d\n",result);
}
return 0;
}