主题:有毛病的打印机
有毛病的打印机(typewrt)
问题描述
金明准备将1到10n的数依次打印出来。可能是金明家的电脑染毒的缘故,在打印过程中,数字“8”打不出来(为什么有是8,不祥之兆啊,金明私下里想,今年家里要破财了,爸爸的股票在2008年解套可能没有指望,郁闷啊……)。因为这样,所以所有含有数字“8”的数都没有被正确地打出。试问没有被正确打出的数一共有多少个。
输入数据
输入一个正整数n。
输出数据
输出从1到10^n这些数中不能被正确打印的数的个数。
输入样例
2
输出样例
19
时间限制
各测试点1秒
内存限制
你的程序将被分配32MB的运行空间
数据规模
n<=1000
是高精度,我编错了,请各位高手指教
我的:
var i,j,k,n,m,b,c:longint;
a:array[0..10000] of longint;
begin
readln(n);
b:=1;
a[1]:=1;
for j:=1 to n do
begin
for i:=b+1 downto 2 do
a[i]:=a[i-1];
a[1]:=0;
b:=b+1;
end;
repeat
for i:=1 to b do
if a[i]=8 then begin;c:=c+1;break;end;
for i:=1 to b do
begin
if a[i]<1 then begin
a[i+1]:=a[i+1]-1;
a[i]:=a[i]+10;
break;
end
else begin;a[i]:=a[i-1];break;end;
a[i]:=a[i]-1;
end;
while a[b]=0 do b:=b-1;
until a[b]=0;
writeln(c);
end.
问题描述
金明准备将1到10n的数依次打印出来。可能是金明家的电脑染毒的缘故,在打印过程中,数字“8”打不出来(为什么有是8,不祥之兆啊,金明私下里想,今年家里要破财了,爸爸的股票在2008年解套可能没有指望,郁闷啊……)。因为这样,所以所有含有数字“8”的数都没有被正确地打出。试问没有被正确打出的数一共有多少个。
输入数据
输入一个正整数n。
输出数据
输出从1到10^n这些数中不能被正确打印的数的个数。
输入样例
2
输出样例
19
时间限制
各测试点1秒
内存限制
你的程序将被分配32MB的运行空间
数据规模
n<=1000
是高精度,我编错了,请各位高手指教
我的:
var i,j,k,n,m,b,c:longint;
a:array[0..10000] of longint;
begin
readln(n);
b:=1;
a[1]:=1;
for j:=1 to n do
begin
for i:=b+1 downto 2 do
a[i]:=a[i-1];
a[1]:=0;
b:=b+1;
end;
repeat
for i:=1 to b do
if a[i]=8 then begin;c:=c+1;break;end;
for i:=1 to b do
begin
if a[i]<1 then begin
a[i+1]:=a[i+1]-1;
a[i]:=a[i]+10;
break;
end
else begin;a[i]:=a[i-1];break;end;
a[i]:=a[i]-1;
end;
while a[b]=0 do b:=b-1;
until a[b]=0;
writeln(c);
end.