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党小学生路过,表示不知道大佬们在说什么...........................