poj2509---抽k根烟就换一支,求能抽烟的总数
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <stdio.h> #include <stdlib.h> int main() { int now,k; while(scanf("%d %d",&now,&k) != EOF) { int hav=0; while(now >= k) { hav += now/k*k; now = now/k + now%k; } hav += now; printf("%d\n",hav); } return 0; }
算法思路:目前有几支烟就放进now中,把now看成一个整体,now对k取余和取商,商即为k支烟为大小的整体有多少个,一次就have掉now/k*k
now=now/k+now%k