词条锁定,来讨论发一波(pascal)

P1150 Peter 的烟

wangweiba @ 2017-07-27 21:00:36

小学数学题,纯模拟

var n,k,y,s:longint;
begin
 readln(n,k);
 while n>0 do begin
   n:=n-1;  烟鬼已经抽了一根烟
   y:=y+1; 烟蒂数加一
   if y=k then begin  如果这个烟蒂数已经达到可以换烟的地步了
     n:=n+1;    烟的根数加1
     y:=0;        换完后烟蒂数清零
   end;
   s:=s+1;    由于while循环的缘故这边要加个计数器
 end;
  write(s);  输出
end.

by Siyuan @ 2017-08-08 20:47:14

var
  n,k,a,b:int64;//a为能吸到的烟的总数,b为当前的烟蒂数
begin
  read(n,k);
  a:=n;
  b:=n;
  while b>=k do
    begin
      a:=a+b div k;
      b:=(b mod k)+(b div k);
    end;
  write(a);
end.

|