for i:=0 to n-2 do begin
r:=test[i]*test[i+1]+1; test[i+1]:=r; end;
if max
procedure PaiLie(num:integer); var
i:integer; begin
if num = 0 then begin
writestr(); exit; end;
for i:=0 to n-1 do begin
if not IsIn(i) then begin
excepti[n -num]:=i;
test[n-num]:=arr[i]; PaiLie(num-1); end; end;
excepti[n-num]:=-1; end;
procedure ReadArray(); var
i:integer; begin
for i:=0 to n-1 do read(arr[i]); end;
begin
assign(input,'MAXMIN.IN'); assign(output,'MAXMIN.OUT'); reset(input); rewrite(output); read(n); max:=0; min:=10000; ReadArray(); InitExcept(); PaiLie (n);
writeln('max=',max); writeln('min=',min); write('k=',max-min); close(input); close(output);
end.
260、输入一个英文句子,例如:“This is a Book.\,可以看到句子是以“.”来作为结束符号的,并且单词之间以一个空格来分隔。接着再输入一个单词A,请找出首次在句子中出现的与A$相同的单词,是句子中的第几个单词,若 不存在,则输出该句子中单词字符的总个数。 例如对上句子而言,若输入单词“is”,则应输出: 2 若输入单词“isa”,则应输出:11 var
n,ls,la,i:integer; a,s,sf:string;
begin
readln(s); readln(a);
s:=copy(s,1,length(s)-1); n:=1;
la:=length(a);
ls:=length(s); sf:=s;
while pos(' ',sf)<>0 do begin
delete(sf, pos(' ',sf),1); n:=n+1; end; sf:='';
for i:=1 to ls-la+1 do begin
if (copy(s,i,la)=a)and(copy(s,i-1,1)=' ')and(copy(s,i+la,1)=' ') then
begin
sf:=copy(s,1,i+la-1); break; end; end;
if sf<>'' then begin i:=1;
while pos(' ',sf)<>0 do begin
i:=i+1;
delete(sf,pos(' ',sf),1); end; end else begin
while pos(' ',s)<>0 do begin
delete(s,pos(' ',s),1); end;
i:=length(s) end;
write(i); end.
263、给出二个任意的正整数N,K(1<=N<=10000,0<=K (2)当剩余的数不够减时,则将其加上K,再重复(1)的操作过程。 (3)若剩余的数为0时,则结束操作并输出进行减法的次数。 (4)若存在永远不能减完的情况,则输出信息“ERROR!”。 例如:当N=4,K=2时,操作过程如下: 1)4-1=3 减2^0 2)3-2=1 减2^1 由于不够减,所以加K的值2,得:N=1+2=3 3)3-1=2 减2^0 4)2-2=0 减2^1 此时结果为0,则输出:STEP=4(表示进行了4次减法操作运算) 又如:当N=2,K=1时,操作过程如下: 1)2-1=1 减2^0 由于不够下次减,所以加K的值1,得:N=1+1=2 2)2-1=1 减2^0 ???? 在这种情况下,永远不能减完,则输出信息“ERROR!” var n,k,i,s,temp:integer; flag:boolean; function mexp(a:integer;b:integer):integer; var t,m:integer; begin t:=1; for m:=1 to b do begin t:=t*a; end; mexp:=t; end; begin write('N='); read(n); writeln; write('K='); read(k); writeln; temp:=k; i:=-1; while temp > 0 do begin i:=i+1; temp:=temp-mexp(2,i); if temp=0 then begin write('ERROR!'); halt; end; end; i:=0; s:=0; while n<>0 do begin s:=s+1; n:=n-mexp(2,i); i:=i+1; if n<0 then begin i:=0; while n<0 do begin n:=n+k; end; end; end; write('STEP=',s); end. 264、生日日期 ( Birthday ) 问题描述: 小甜甜的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。 输入格式: 从文件的第一行分别读入YY,MM,DD其中1949<=YY<=2002,日期绝对合法。 输出格式: 输出文件只有一行,即小甜甜生日第一万天以后的日期,格式为 “YY-MM-DD”。 样例: BIRTHDAY.DAT BIRTHDAY .OUT 1975 7 15var i:longint; y,m,d:integer; procedure incdate(); var flag:integer; begin d:=d+1; if (y mod 100=0) then begin if (y mod 400=0)and(m=2) then begin flag:=29; end else begin case m of 1,3,5,7,8,10,12:flag:=31; 4,6,9,11:flag:=30; 2:flag:=28; end; end; if d>flag then begin d:=1; m:=m+1; if m=13 then