需要记忆的算法(new)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
需要记忆的算法:
-1 pascal 运算优先级
1not
2and * / div mod 3or xor + -
4 in = > < >= <=
0. 文件的输入和输出:
begin
assign(input,'p1.in'); reset(input);
assign(output,'p1.out'); rewrite(output);
for i:=1 to 20 do readln(a[i]);
sum:=0;
for i:=1 to 20 do sum:=sum+a[i];
writeln(sum);
close(input);
close(output);
end.
1. 素数的判断:
function ok(x:longint):boolean;
var i:longint;
begin
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then exit(false);
exit(true);
end;
2.选择排序
For i:=1 to n-1 do
For j:=i+1 to n do
If a[j]>a[i] then begin t:=a[j];a[j]:=a[i];a[i]:=t;end;
3.二进制枚举法:
Fillchar(b,sizeof(b),0);
while b[0]=0 do
begin
j:=m; \\第m位为最低位。
while b[j]=1 do dec(j); \\从最低位开始找非1 的位子;
b[j]:=1; \\该位置1;
for i:=j+1 to m do b[i]:=0; \\把刚才经过的1全部置0;
{已经产生一种2进制数}
{处理……}
End;
4.快排:
procedure qsort(l,r:longint);
var i,j,x,t:longint;
begin
i:=l;j:=r;
x:=a[(i+j) div 2]; \\取一个数;
repeat