主题:郁闷,调试了两小时还找不错
三 报数: ( 30分 )
10个小朋友围坐成一圈玩报数游戏(如图),报数规则如下:从编号为1的小朋友开始报起,他先报"1",下面编号为2的小朋友报"2",依次往下报,10号报完后再回到1号,1号接着10号所报的数继续往下报,但任何人报的数不能是7的倍数,所报的数中也不能含数字"7"。
如:7,14,17,21,27,28,...,70,71,72,...,都是不能报的数。 9 3
下例为前三圈每位小朋友报的数:
小朋友编号 1 2 3 4 5 6 7 8 9 10
第1圈 1 2 3 4 5 6 8 9 10 11
第2圈 12 13 15 16 18 19 20 22 23 24
第3圈 25 26 29 30 31 32 33 34 36 38
编程求编号I (1=1,2.....10) 的小朋友第J (J<1000)圈所报的数是几? I和J均由键盘输入。
例如 输入: I=3 J=2 输出: 15
我写的程序,但不知为什么调试I=3 J=3时开始出错,水平太差不要见笑!!!
var
a,b,i,j,s,f:integer;
procedure pd(x:integer);
var
q:integer;
begin
while x>0 do
begin
q:=x mod 10;
if q=7 then begin f:=1; s:=s+f;exit; end else f:=0;
x:=x div 10;
end;
end;
begin
readln(i); readln(j);
for a:=1 to j do
for b:=1 to 10 do
begin
s:=s+1;
if s mod 7=0 then s:=s+1 else pd(s);
if (j=a) and (b=i) then begin writeln(s);halt; end;
end;
readln;
end.
[em8][em8][em8]
10个小朋友围坐成一圈玩报数游戏(如图),报数规则如下:从编号为1的小朋友开始报起,他先报"1",下面编号为2的小朋友报"2",依次往下报,10号报完后再回到1号,1号接着10号所报的数继续往下报,但任何人报的数不能是7的倍数,所报的数中也不能含数字"7"。
如:7,14,17,21,27,28,...,70,71,72,...,都是不能报的数。 9 3
下例为前三圈每位小朋友报的数:
小朋友编号 1 2 3 4 5 6 7 8 9 10
第1圈 1 2 3 4 5 6 8 9 10 11
第2圈 12 13 15 16 18 19 20 22 23 24
第3圈 25 26 29 30 31 32 33 34 36 38
编程求编号I (1=1,2.....10) 的小朋友第J (J<1000)圈所报的数是几? I和J均由键盘输入。
例如 输入: I=3 J=2 输出: 15
我写的程序,但不知为什么调试I=3 J=3时开始出错,水平太差不要见笑!!!
var
a,b,i,j,s,f:integer;
procedure pd(x:integer);
var
q:integer;
begin
while x>0 do
begin
q:=x mod 10;
if q=7 then begin f:=1; s:=s+f;exit; end else f:=0;
x:=x div 10;
end;
end;
begin
readln(i); readln(j);
for a:=1 to j do
for b:=1 to 10 do
begin
s:=s+1;
if s mod 7=0 then s:=s+1 else pd(s);
if (j=a) and (b=i) then begin writeln(s);halt; end;
end;
readln;
end.
[em8][em8][em8]