零的数列
題意
請考慮一個由1到N(N=3, 4, 5 ... 9)的數(shù)字組成的遞增數(shù)列:1 2 3 ... N。 現(xiàn)在請在數(shù)列中插入“+”表示加,或者“-”表示減,“ ”表示空白(例如1-2 3就等于1-23),來將每一對數(shù)字組合在一起(請不要在第一個數(shù)字前插入符號)。 計算該表達式的結(jié)果并判斷其值是否為0。
分析
這題用搜索就能做出來,思路清晰就可以了。
var
n:longint;
a:array[1..9]of char;
procedure dfs(w,s,t,l:longint);
var
i:longint;
begin
? ? if w>n then
? ? begin
? ? ? ? if s+t*l=0 then
? ? ? ? begin
? ? ? ? ? ? for i:=1 to n-1 do
? ? ? ? ? ? write(i,a[i+1]);
? ? ? ? ? ? writeln(n);
? ? ? ? end;
? ? ? ? exit;
? ? end;
? ? a[w]:=' '; dfs(w+1,s,t*10+w,l);
? ? a[w]:='+'; dfs(w+1,s+t*l,w,1);
? ? a[w]:='-'; dfs(w+1,s+t*l,w,-1);
end;
begin
? ? read(n);
? ? dfs(2,0,1,1);
end.
轉(zhuǎn)載于:https://www.cnblogs.com/YYC-0304/p/9500193.html
總結(jié)