首页 > 试题广场 >

翻硬币 题目描述:一摞硬币共有m枚,每一枚都是正面朝上。取下

[填空题]
翻硬币
题目描述:一摞硬币共有m枚,每一枚都是正面朝上。取下最上面的一枚硬币,将它翻面后放回原处。然后取下最上面的2枚硬币,将他们一起翻面后放回原处。在取3枚,取4枚……直至m枚。然后在从这摞硬币最上面的一枚开始,重复刚才的做法。这样一直做下去,直到这摞硬币中每一枚又是正面朝上为止。例如,m为1时,翻两次即可。
输入:仅有的一个数字是这摞硬币的枚数m ,0< m <1000。
输出:为了使这摞硬币中的每一枚都是朝正面朝上所必须翻的次数。
输入样例:30
输出样例:899
程序
program Program1;
var
  m : integer;
function solve(m : integer) : integer;
var
  i, t, d : integer;
  flag : Boolean;
begin
  if (m = 1) then
    solve := 1
  else begin
    d := 2 * m + 1;
    t := 2;
    i := 1;
    flag := False;
    repeat
      if (t = 1) then
      begin
        solve := 2;
        flag := True;
      end
      else if (3) then
      begin
        solve := i * m - 1;
        flag := True;
      end
      else
        t := 4;
      i := i + 1;
    until flag;
  end
end;

begin
  read(m);
  if ((5) and (m < 1000)) then
    writeln(6);
end.
	



这道题你会答吗?花几分钟告诉大家答案吧!