主题:[讨论]高手救命!
背景 Background
NOIP初赛的程序完善题单另拿出来对我等菜来说也是不错的编程题目~
描述 Description
一摞硬币共有m枚,每一枚都是正面朝上。取下最上面的一枚硬币,将它翻面后放回原处。然后取下最上面的2枚硬币,将他们一起翻面后放回原处。在取3枚,取4枚……直至m枚。然后在从这摞硬币最上面的一枚开始,重复刚才的做法。这样一直做下去,直到这摞硬币中每一枚又是正面朝上为止。例如,m为1时,翻两次即可。
输入格式 Input Format
仅有的一个数字是这摞硬币的枚数m ,0< m <50000。
输出格式 Output Format
一个整数,即为了使这摞硬币中的每一枚都是朝正面朝上所必须翻的次数。
样例输入 Sample Input
30
样例输出 Sample Outpu
899
时间限制 Time Limitation
各个测试点1s
我的程序:
var m,i,s,x,j,k:longint;
a:array[1..1000000] of integer;
begin
read(m);
repeat
begin
for i:=1 to m do
begin
s:=1;
for j:=1 to i do
begin
a[j]:=1-a[j];x:=x+1;
end;
for k:=1 to m do
if a[k]=1 then s:=0;
if s=1 then begin write(x);exit;end;
end;
end;
until s=2;
end.
编译通过...
├ 测试数据 01:运行超时...
├ 测试数据 02:运行超时...
├ 测试数据 03:运行超时...
├ 测试数据 04:答案错误... ├ 标准行输出 8995...
├ 错误行输出 2709...
├ 测试数据 05:答案错误... ├ 标准行输出 3326...
├ 错误行输出 9990...
-------------------------
Unaccepted 有效得分:0 有效耗时:0ms
请教各位高手帮忙找出错误!!!
NOIP初赛的程序完善题单另拿出来对我等菜来说也是不错的编程题目~
描述 Description
一摞硬币共有m枚,每一枚都是正面朝上。取下最上面的一枚硬币,将它翻面后放回原处。然后取下最上面的2枚硬币,将他们一起翻面后放回原处。在取3枚,取4枚……直至m枚。然后在从这摞硬币最上面的一枚开始,重复刚才的做法。这样一直做下去,直到这摞硬币中每一枚又是正面朝上为止。例如,m为1时,翻两次即可。
输入格式 Input Format
仅有的一个数字是这摞硬币的枚数m ,0< m <50000。
输出格式 Output Format
一个整数,即为了使这摞硬币中的每一枚都是朝正面朝上所必须翻的次数。
样例输入 Sample Input
30
样例输出 Sample Outpu
899
时间限制 Time Limitation
各个测试点1s
我的程序:
var m,i,s,x,j,k:longint;
a:array[1..1000000] of integer;
begin
read(m);
repeat
begin
for i:=1 to m do
begin
s:=1;
for j:=1 to i do
begin
a[j]:=1-a[j];x:=x+1;
end;
for k:=1 to m do
if a[k]=1 then s:=0;
if s=1 then begin write(x);exit;end;
end;
end;
until s=2;
end.
编译通过...
├ 测试数据 01:运行超时...
├ 测试数据 02:运行超时...
├ 测试数据 03:运行超时...
├ 测试数据 04:答案错误... ├ 标准行输出 8995...
├ 错误行输出 2709...
├ 测试数据 05:答案错误... ├ 标准行输出 3326...
├ 错误行输出 9990...
-------------------------
Unaccepted 有效得分:0 有效耗时:0ms
请教各位高手帮忙找出错误!!!