回 帖 发 新 帖 刷新版面

主题:有毛病的打印机

有毛病的打印机(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.

回复列表 (共5个回复)

沙发

为什么没人啊,只要回答必得30分!!!

板凳

这道题好像是竞赛题目

3 楼

恩恩

4 楼

该换个新的了
















Singnature---------------------------------------He is not fit to command others that cannot command himself[url=http://www.freerun3.com/nike-free-run-2-mens-shoes-c-6.html]nike free run 2[/url][url=http://www.freerun3.com/nike-free-run-mens-shoes-c-2.html]nike free run[/url][url=http://www.freerun3.com/nike-lunarglide-3-mens-shoes-c-10.html]nike lunarglide 3 mens[/url]

5 楼

穷举8的个数和位置试试

我来回复

您尚未登录,请登录后再回复。点此登录或注册