算除法跟餘數。
每次除完的餘數,
會影響下一次的除法結果,
所以餘數要紀錄下來。
/* ACM 10346 Peter’s Smokes
* mythnc
* 2011/11/02 20:18:09
* run time: 0.008
*/
#include <stdio.h>
int rollcig(int, int);
int main(void)
{
int n, k;
while (scanf("%d %d", &n, &k) == 2)
printf("%d\n", rollcig(n, k));
return 0;
}
/* rollcig: return the cigarette peter have */
int rollcig(int n, int k)
{
int count, r;
for (count = n; n >= k; n += r) {
r = n % k;
n /= k;
count += n;
}
return count;
}
沒有留言:
張貼留言