首页 > 代码库 > 兰州烧饼

兰州烧饼

兰州烧饼

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述
烧饼有两面,要做好一个兰州烧饼,要两面都弄热。当然,一次只能弄一个的话,效率就太低了。有这么一个大平底锅,一次可以同时放入k个兰州烧饼,一分钟能做好一面。而现在有n个兰州烧饼,至少需要多少分钟才能全部做好呢?
输入
依次输入n和k,中间以空格分隔,其中1 <= k,n <= 100000
输出
输出全部做好至少需要的分钟数
样例输入
3 2
样例输出
3
提示
如样例,三个兰州烧饼编号a,b,c,首先a和b,然后a和c,最后b和c,3分钟完成

解题思路:

本题比较坑爹的是有多组测试数据,而题目中却没有提到。

另外需要注意的是,当n>=k时,都是需要两分钟。

其他的只需要公式(n*2)/k即可

用三目运算符可

程序代码;

#include<stdio.h>
int main()
{
	int n,k;
	while(scanf("%d%d",&n,&k)!=EOF)
	{
		if(n<=k)
			printf("2\n");
		else
		{
			if(((n*2)%k)==0)
				printf("%d\n",(n*2)/k);
			else
				printf("%d\n",(n*2)/k+1);
		}
	}
	return 0;
}
另外,看了最优代码后学到可用一个语句:printf("%d\n",((n*2)/k==0) ? (n*2)/k :(n*2)/k+1);

来代替if(((n*2)%k)==0)
printf("%d\n",(n*2)/k);

else
printf("%d\n",(n*2)/k+1);

兰州烧饼