第三个点WAWAAWAWAWA。。。(pascal

P1150 Peter 的烟

TCZN @ 2019-04-03 20:39:05

  n,k,s,i,y:longint;
begin
  read(n,k);
    s:=n;y:=0;
    if n>k then 
   begin
      s:=s+n div k;
      y:=y+n div k;
      if y=k then s:=s+y div k;
   end;
  writeln(s);
end.  

by TCZN @ 2019-04-03 20:41:34

qwq求助


by TCZN @ 2019-04-03 20:44:56

没人么

by t162 @ 2019-04-03 20:48:32

没人

by t162 @ 2019-04-03 20:49:16

你的var去哪了


by 萌萌哒小女孩 @ 2019-04-03 21:15:09

我看不懂你的程序诶

贴个我自己的给你吧

var n,k,ans:int64;
begin
  readln(n,k);ans:=ans+n;   //一开始吸了n根
  while n>=k do     //一直算到烟蒂不够为止
  begin
    ans:=ans+n div k;   //吸了换来的烟
    n:=n div k+n mod k;   //余下的烟蒂加上换来的
  end;
  writeln(ans);
end.

by TCZN @ 2019-04-04 19:28:53

  n,k,s,i,y:longint;//y是换来的烟,s是总共的烟
begin
  read(n,k);
    s:=n;y:=0;//手中的烟
    if n>k then //如果手中的烟比换索要的烟蒂的要多
   begin
      s:=s+n div k;//就总吸烟数加能换的数
      y:=y+n div k;//换来的烟
      if y=k then s:=s+y div k;//如果换来的烟等于可以换的烟的烟蒂数就再换
   end;
  writeln(s);//输出总烟数
end.  

@萌萌哒小女孩


by TCZN @ 2019-04-04 19:29:23

都是绿名Orz


by TCZN @ 2019-04-04 19:30:57

@萌萌哒小女孩 我一个通过这题的朋友告诉我打个表就能满分,打表是什么,他没说清楚


by 萌萌哒小女孩 @ 2019-04-04 21:24:42

打表就是通过直接输出已知数据的结果达到得分的效果,一般用来得一些容易超时或超内存的测试点(很赖皮

不过我觉得这题没必要打表

我分析了一下你的程序

首先你不能用if,要用while循环,毕竟烟蒂的数量只要>=k就可以换烟,你换了一次以后多余的够换烟的烟蒂浪费了,上次换烟余下的烟蒂也可以留到后面用,所以说你的n>k也要改成n>=k,不然你的程序一遇到n=k的情况就WA了,像7 4这样的也会WA;其次,你的y变量没有意义,多次换烟蒂的数据可以留给n,给循环使用。

你认真解读一下我的代码,若有不懂再问 @TCZN


by Strong_Jelly @ 2019-04-13 15:40:46

C党小学生路过,表示不知道大佬们在说什么...........................


| 下一页