兰州烧饼
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
烧饼有两面,要做好一个兰州烧饼,要两面都弄热。当然,一次只能弄一个的话,效率就太低了。有这么一个大平底锅,一次可以同时放入k个兰州烧饼,一分钟能做好一面。而现在有n个兰州烧饼,至少需要多少分钟才能全部做好呢?
-
输入
- 依次输入n和k,中间以空格分隔,其中1 <= k,n <= 100000 输出
- 输出全部做好至少需要的分钟数 样例输入
-
3 2
样例输出
-
3
透过题目找数学问题,不要分类讨论,很麻烦的。
# include<stdio.h>
# include<math.h>
int main(){
int n,m;
while(scanf("%d %d",&n,&m)==2)
{ if(n<m)
printf("2\n");
else
if(n*2%m==0)
printf("%d\n",n*2/m);
else printf("%d\n",n*2/m+1);
}
return 0;
}
解析:首先可能是该题的出题者忘记说多组数据导致很多人wa,就是一个简单的数学计算ceil(x)返回不小于x的最小整数值
#include <iostream>
#include <math.h>
using std::endl;
using std::cin;
using std::cout;
int main()
{
int n,k;
while(cin >>n >> k)
{
if(n<=k)
cout << 2 << endl;
else
cout << ceil((2.0*n)/k) <<endl;
}
return 0;
}