pascal程序问题(火柴棒等式)program huochai;varci:longint;n,i,j,k:integer;a:array[1.2000] of longint;w:text;beginassign(w,'c:/in.txt');reset(w);read(n);n:=n-4;a[0]:=6;a[1]:=2;a[2]:=5;a[3]:=5;a[4]:=4;a[5]:=5;a[6]:=6;a[7]:=3;a[8]:=7;a[9]:=6;
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/26 17:17:39
pascal程序问题(火柴棒等式)program huochai;varci:longint;n,i,j,k:integer;a:array[1.2000] of longint;w:text;beginassign(w,'c:/in.txt');reset(w);read(n);n:=n-4;a[0]:=6;a[1]:=2;a[2]:=5;a[3]:=5;a[4]:=4;a[5]:=5;a[6]:=6;a[7]:=3;a[8]:=7;a[9]:=6;
pascal程序问题(火柴棒等式)
program huochai;
var
ci:longint;
n,i,j,k:integer;
a:array[1.2000] of longint;
w:text;
begin
assign(w,'c:/in.txt');
reset(w);
read(n);
n:=n-4;
a[0]:=6;
a[1]:=2;
a[2]:=5;
a[3]:=5;
a[4]:=4;
a[5]:=5;
a[6]:=6;
a[7]:=3;
a[8]:=7;
a[9]:=6;
ci:=0;
for i:=10 to 1111 do
begin
a[i]:=a[i div 10]+a[i mod 10];
end;
for i:=0 to 1111 do
begin
for j:=0 to i do
begin
k:=i+j;
if (a[i]+a[j]+a[k]=n) then ci:=ci+1;
end;
end;
colse(w);
assign(w);
rewirte(w);
write(w,ci);
colse(w);
end.这个程序为什么过不了?
pascal程序问题(火柴棒等式)program huochai;varci:longint;n,i,j,k:integer;a:array[1.2000] of longint;w:text;beginassign(w,'c:/in.txt');reset(w);read(n);n:=n-4;a[0]:=6;a[1]:=2;a[2]:=5;a[3]:=5;a[4]:=4;a[5]:=5;a[6]:=6;a[7]:=3;a[8]:=7;a[9]:=6;
var i,j,n,ans,z:integer;
a:array[0..9]of integer=(6,2,5,5,4,5,6,3,7,6);
function pan(k:integer):integer;
var x:integer;
s:string;
begin
pan:=0;
if k=0 then pan:=6;
while k>0 do
begin
x:=k mod 10;
pan:=pan+a[x];
k:=k div 10;
end;
end;
begin
readln(n);
n:=n-4;
for i:=0 to 999 do
for j:=0 to 999 do
begin
z:=i+j;
if pan(i)+pan(j)+pan(z)=n then
inc(ans);
end;
write(ans);
end.
rqnoj上过了
时间复杂度太大了,如果时间限制是每个测试点1S,您的程序就会超时,也就是错误了!
要把那两个1111改成<1000的数字
你的close,rewrite,assign,reset是没必要写的……