异或者...
pascal程序加注释(pascal语言可以写什么软件)
pascal程序加注释(pascal语言可以写什么软件)
pascal程序加注释(pascal语言可以写什么软件)
可简单理解成二进制数的“不进位加法”。
如3 xor 4:
3的二进制表示是11,5的二进制表示是101。
则 3 xor 5=
__1 1 为了方便观看,_表示空格
+1 0 1
————
_1 1 0 ……这里的加法是不算进位的。
所以就是6。
程序(PASCAL)
const max=8;
var i,j:integer;
a:array[1..max] of 0..max; {放皇后数组}
b:array[2..2max] of boolean; {/对角线标志数组}
c:array[-(max-1)..max-1] of boolean; {对角线标志数组}
col:array[1..max] of boolean; {列标志数组}
total:integer; {统计总数}
procedure output; {输出}
var i:integer;
begin
write('No.':4,'[',total+1:2,']');
for i:=1 to max do write(a[i]:3);write(' ');
if (total+1) mod 2 =0 then wrin; inc(total);
end;
function ok(i,dep:integer):boolean; {判断第dep行第i列可放否}
begin
ok:=false;
if ( b[i+dep]=true) and ( c[dep-i]=true) {and (a[dep]=0)} and
(col[i]=true) then ok:=true
end;
procedure try(dep:integer);
var i,j:integer;
begin
for i:=1 to max do {每一行均有max种放法}
if ok(i,dep) then begin
a[dep]:=i;
b[i+dep]:=false; {/对角线已放标志}
c[dep-i]:=false; {对角线已放标志}
col[i]:=false; {列已放标志}
if dep=max then output
else try(dep+1); {递归下一层}
a[dep]:=0; {取走皇后,回溯}
b[i+dep]:=true; {恢复标志数组}
c[dep-i]:=true;
col[i]:=true;
end;
end;
begin
for i:=1 to max do begin a[i]:=0;col[i]:=true;end;
for i:=2 to 2max do b[i]:=true;
for i:=-(max-1) to max-1 do c[i]:=true;
total:=0;
try(1);
wrin('total:',total);
end.
Delphi的编程语言是以Pascal为基础的。Pascal语言具有可读性好、编写容易的特点,这使得它很适合作为基础的开发语言。同时,使用编译器创建的应用程序只生成单个可执行文件(.EXE),正是这种结合,使得Pascal成为Delphi这种先进开发环境的编程语言。
function find(u:longint):boolean; var i:longint; begin for i:=1 to n do if g[u,i] and (not t[i]) then begin t[i]:=false; if (f[i]=0)or(find(f[i])) then begin find:=true; f[i]:=u; f[u]:=i; exit; end; end; find:=false; end;begin 读入边 k:=0; for i:=1 to n do if find(i) then k:=k+1; wrin(k);end.
program dhfa; var n,m:longint; //定义,不用说了吧 a:array[1..100] of longint; c:longint; count:longint; procedure int; //这段是读入 var i:longint; begin read(n,m); //读入n,m for i:=1 to n do //读入n个数 read(a[i]); c:=1; count:=0; end; procedure calc(k:longint); //判断素数 var i:longint; begin for i:=2 to trunc(sqrt(k)) do //循环判断 if k mod i=0 then exit; //枚举判断i是不是k的因数 inc(count); //如果是素数就累加 end; procedure try(p,q:longint); //搜索(深搜) var i,j:longint; begin if c<=m then for i:=p to n-m+c do begin inc(c); q:=q+a[i]; try(i+1,q); //搜索模拟 dec(c); q:=q-a[i]; end else calc(q); end; begin int; try(1,0); wrin(count); //输出方案数 end.
procedure sap;
begin
flow:=0;
for i:=1 to n do di[i]:=1;
num[0]:=n;
i:=1;
while dist[1] begin flag:=false; for k:=di[i] to top[i] do begin j:=a[i,k]; if (map[i,j]=true)and(dist[i]=dist[j]+1) then begin flag:=true; pre[j]:=i; di[i]:=k; i:=j; if i=n then begin flow:=flow+1; while i<>1 do begin temp:=pre[i]; map[temp,i]:=false; inc(top[i]); a[i,top[i]]:=temp; map[i,temp]:=true; i:=pre[i]; end; end; break; end; end; if flag=true then continue; min:=n-1; for k:=1 to top[i] do begin j:=a[i,k]; if (map[i,j]=true)and(dist[j] begin min:=dist[j]; jl:=k; end; end; dec(num[dist[i]]); if num[dist[i]]=0 then break; dist[i]:=min+1; inc(num[dist[i]]); di[i]:=jl; if i<>1 then i:=pre[i]; end; wrin(flow); end; 这是主过程部分。。。 买本算法导论自己看吧。。。 static int DiGui(int num) {if(num==1 || num==2) {return 1; }else {return DiGUi(num-1)+DiGUi(num-2); }}
版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 836084111@qq.com 邮箱删除。