主题:翻硬币
一摞硬币共有m枚,每一枚都是正面朝上。取下最上面的一枚硬币,将它翻面后放回原处。然后取下最上面的2枚硬币,将他们一起翻面后再放回原处。再取3枚,取4枚……直至m枚。然后在从着摞硬币最上面的一枚开始,重复刚才的做法。这样一直做下去,直到这摞硬币中的每一枚又都是正面朝上为止。例如,m为1时,翻两次即可。m为2时,翻3次即可;…;m为30时,翻899次即可;…
输入:
仅有的一个数字是这摞硬币的枚数m,0<m<1000.
输出:
为了使这摞硬币中的每一枚有都是正面朝上所必需翻的次数。
输出样例:
30
输出样例:
899
程序:
DECLAREFUNCTION solve(m)
DIMm,nASINTEGER
INPUTm
IFm>0ANDm<1000THEN
n=①
PRONTn
ENDIF
END
FUNCTIONsolve(m)
DIMi,t,dASINTEGER
IFm=ITHEN
solve=②
ELSE
d=2*m+1
t=2
i=1
DO
IFt=1THEN
solve=③
EXITDO
ENDIF
IF④THEN
solve=i*m-1
EXIT DO
ENDIF
t=⑤
i=i+1
LOOP
ENDIF
ENDFUNCTION
输入:
仅有的一个数字是这摞硬币的枚数m,0<m<1000.
输出:
为了使这摞硬币中的每一枚有都是正面朝上所必需翻的次数。
输出样例:
30
输出样例:
899
程序:
DECLAREFUNCTION solve(m)
DIMm,nASINTEGER
INPUTm
IFm>0ANDm<1000THEN
n=①
PRONTn
ENDIF
END
FUNCTIONsolve(m)
DIMi,t,dASINTEGER
IFm=ITHEN
solve=②
ELSE
d=2*m+1
t=2
i=1
DO
IFt=1THEN
solve=③
EXITDO
ENDIF
IF④THEN
solve=i*m-1
EXIT DO
ENDIF
t=⑤
i=i+1
LOOP
ENDIF
ENDFUNCTION