1樓:凱爾特
第一題:
vary,m,d:integer;
y0,m0,d0:integer;
s,i,p,q:integer;
function year(n:integer):integer;
begin
if (n mod 4=0) and (n mod 100<>0) then
year:=366
else year:=365;
end;
function month(n,nian:integer):integer;
begin
case n of
1,3,5,7,8,10,12:month:=31;
4,6,9,11:month:=30;
2:begin
if year(nian)=365 then month:=28else month:=29;
end;end;
end;
begin
readln(y,m,d);
readln(y0,m0,d0);
y:=y+19;
for i:=1 to m-1 do
p:=p+month(i,y);
p:=p+d;
for i:=1 to m0-1 do
q:=q+month(i,y0);
q:=q+d0;
for i:=y0 to y-1 do
s:=s+year(i);
s:=s+p-q;
write(s);
end.
第二題:
vara:array[1..100000]of integer;
i,j,x,s,n:integer;
begin
read(n);
for i:=1 to n do
read(a[i]);
repeat
j:=0;
for i:=1 to n-1 do
if (a[i]>a[i+1]) thenbegin
x:=a[i];
a[i]:=a[i+1];
a[i+1]:=x;
inc(j);
end;
until j=0;
for i:=1 to ((n div 2)+1) dos:=s+a[2*i-1];
write(s);
end.
第三題var
a:array[1..1000]of integer;
way:longint;
n:integer;
function cut(m:longint):longint;
begin
if m=55555 then cut:=0else cut:=m;
end;
procedure aa(k:integer);
var i:integer;
begin
if k=n then begin
for i:=0 to 1 do
begin
a[k]:=i;
if a[k-2]+a[k-1]+a[k]<=2 then begin
inc(way);
way:=cut(way);
end;
end;
endelse begin
for i:=0 to 1 do
begin
a[k]:=i;
if k>=3 then begin
if a[k-2]+a[k-1]+a[k]<=2 thenaa(k+1);
endelse aa(k+1);
end;end;
end;
begin
read(n);
aa(1);
write(way mod 55555);
end.
2樓:
很無聊的題目啊··········
pascal程式 選數,pascal程式設計 數字遊戲
型別 搜尋 題解 本題動態規劃無從下手,也無數學公式可尋,看來只能搜尋 組合的生成演算法 其實1 n 20這個約束條件也暗示我們本題搜尋是有希望的,組合的生成可用簡單的dfs來實現,既搜尋這k個整數在原數列中的位置,由於組合不同於排列,與這k個數的排列順序無關,所以我們可以令a i 1 是否為素數最...
pascal程式設計 誰做了好事?有ABCD四位學生,其中一位做
a,b,c,d boolean a 1 b 0 c 0 d 0 如果是a if not not a and c and d and not d or not a and not c and d and not d or not a and c and not d and not d or not a...
pascal程式設計問題,求大師解答給最簡潔的程式
既然1已經用來表示障礙,那就用 1表示有1種方案,2表示有2種方案,var a array 0.100,0.100 of integer n,m,i,j integer begin read m,n for i 1 to m do for j 1 to n do read a i,j if a 1,...