主题:天尝地酒求各位大侠编程.
天尝地酒
[专家分:870] 发布于 2007-04-08 17:05:00
给出二个任意的正整数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!”
回复列表 (共16个回复)
11 楼
小精灵LS [专家分:580] 发布于 2007-05-08 15:07:00
CLS
1 INPUT N, K
IF N <= 1 AND N >= 10000 AND K <= 0 AND K >= N THEN 1
2 S = 0
FOR I = 0 TO N
IF N - 2 ^ I < 0 THEN N = N + K: GOTO 2
N = N - 2 ^ I: F = F + 1:S = S + 2 ^ I
IF K = S THEN PRINT "ERROR!": END
IF N = 0 THEN PRINT "STEP="; F: END
NEXT I
END
12 楼
Lovely哆啦 [专家分:1360] 发布于 2007-07-31 08:03:00
&佑慧妹妹&你的程序太麻烦了!!!不可取!!!
13 楼
Matodied [专家分:7560] 发布于 2007-07-31 13:22:00
佑慧妹妹 已经不知道跑哪去了。
14 楼
hhhchy [专家分:300] 发布于 2007-08-17 10:55:00
1 楼
CLS
10 INPUT N, K
IF N <= 1 AND N >= 10000 AND K <= 0 AND K >= N THEN 10
20 S = 0
FOR I = 0 TO N
IF N - 2 ^ I < 0 THEN N = N + K: GOTO 20
N = N - 2 ^ I: F = F + 1:S = S + 2 ^ I
IF K = S THEN PRINT "ERROR!": END
IF N = 0 THEN PRINT "STEP="; F: END
NEXT I
15 楼
小精灵1号 [专家分:1040] 发布于 2007-08-18 08:16:00
CLS
INPUT N
INPUT K
DIM K(N)
J = 0
2 IF N >= K THEN 3 ELSE 7
3 K(J) = N MOD K
N = N \ K
J = J + 1
GOTO 2
7 K(J) = N
FOR I = J TO 0 STEP -1
PRINT K(I);
NEXT I
END
16 楼
我的电脑 [专家分:990] 发布于 2007-08-18 08:19:00
CLS
10 INPUT N,K
IF N <= 1 AND N >= 10000 AND K <= 0 AND K >= N THEN 10
20 S = 0
FOR I = 0 TO N
IF N - 2 ^ I < 0 THEN N = N + K: GOTO 20
N = N - 2 ^ I: F = F + 1:S = S + 2 ^ I
IF K = S THEN PRINT "ERROR!": END
IF N = 0 THEN PRINT "STEP="; F: END
NEXT I
我来回复