【DG特产公司2011】裁缝师

老李是某布行资深的裁缝师傅,他经常要将一块布裁剪成若干块小布。他是这样裁剪布料的:一刀下去,不管布有多长,都是沿直线剪开它为止。当然,他还可以一次剪多层布料,至于一次能剪多少层,则依赖于该布料的类型。例如:对于某种布料来说,一次只能剪一层布,那么要把一块2X3的布料剪成6块1X1的小布,总共需要剪5刀,如下图;但是,对于另外一种不同的布料来说,如果这种布料一次可以剪两层布,那么只需要三刀就可以剪开布料了(剪完第一刀后,把剪开的两块布叠在一起,再剪第二、第三刀)。

显然,在剪的过程中,叠放在一起剪的几块布料是可以不同形状的。比如1X2的布料是可以叠放在2X2的布料上裁剪的。注意,一块布料本身是不能折叠,所以1X3的布料需要剪2刀,而不是1刀(对折再剪)。
老李想知道对于一块NXM的大布料,最少用多少刀就可以把它裁剪成NXM块1X1的小布块。现在老李请你编写一个程序来完成这个任务。


模拟。如果当前有a张布,如果a<=L,那么就能全部一起切,得到两倍的布料;如果a>L,那么只能多切出L张布料。用一个计数器s记录下当前得到的布料数,模拟下去,当s>n*m时输出刀数即可。


代码

#include<cstdio>
int l, m, n, now, cutt;
int main(){
	freopen("tailor.in","r",stdin);
	freopen("tailor.out","w",stdout);
	scanf("%d%d%d", &l, &m, &n);
	now = 1;
	while(now < m * n){
		if(now <= l) now = now*2;
		else now = now + l;
		++cutt;
	}
	printf("%d",cutt);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值