回 帖 发 新 帖 刷新版面

主题:搜到一题,帮帮忙!!!(+30)

给出两个任意的正整数N,K(1<=N<=10000,0<=K<N),然后进行如下操作:
      1)从N中连续减去2R(R=0,1,2,3,...)
      2)当剩余的数不够减时,则将其加上K,再重复(1)的操作过程。
      3)若剩余的数为0时,则结束操作并输出进行减法的次数。
      4)若存在永远不能减完的情况,则输出信息“ERROR!”。
       例如:当N=4,K=2时,操作过程如下:
       1) 4-1=3  减20   
       2) 3-2=1  减21
       由于不够减,所以加K的值2,得:N=1+2=3
       3) 3-1=2  减20
       4) 2-2=0  减21
       此时结果为0,则输出:STEP=4(表示进行了4次减法操作运算)
       又如:当N=2,K=1时,操作过程如下:
       1) 2-1=1  减20
       由于不够下次减,所以加K的值1,得:N=1+1=2
       2) 2-1=1  减20
        …………
       在这种情况下,永远不能减完,则输出信息“ERROR!”

回复列表 (共2个回复)

沙发

CLS
INPUT N,K
10 S=0
FOR I=0 TO N
IF N-2^I>0 THEN N=N-K:GOTO 10   '这IF有两处错误.锻炼你一下.自己找
N=N-2^I:F=F+1:S=S+2^I
IF S=K THEN ?"ERROR!":END
IF N=0 THEN ?"STEP=";F:END
NEXT I
END

板凳

IF N-2^I<0 THEN N=N+K:GOTO 10

我来回复

您尚未登录,请登录后再回复。点此登录或注册