01/10/2018, 09:31

Cho một xâu S = ’123456789’ hãy tìm cách chèn vào S các dấu '+' hoặc '-' để thu được số M cho trước (nếu có thể)

Cho một xâu S = ’123456789’ hãy tìm cách chèn vào S các dấu ‘+’ hoặc ‘-’ để thu được số M cho trước (nếu có thể).
Số M nguyên được nhập từ bàn phím.
In ra màn hình số phương án (nếu có) hoặc “Không có”(nếu không có phương án nào)
Ví dụ :
Input : 120
Output : 1

Tao Không Ngu. viết 11:45 ngày 01/10/2018

Cho một xâu S = ’123456789’ hãy tìm cách chèn vào S các dấu ‘+’ hoặc ‘-’ để thu được số M cho trước (nếu có thể).
Số M nguyên được nhập từ bàn phím.
In ra màn hình số phương án (nếu có) hoặc “Không có”(nếu không có phương án nào)
Ví dụ :
Input : 120
Output : 1

Cương Nguyễn viết 11:32 ngày 01/10/2018

Không hiểu ý nghĩa cái topic này? bạn nhờ làm hay là thảo luận thuật toán hay là post chơi

Trần Hoàn viết 11:36 ngày 01/10/2018

Có 8 chỗ để nhét dấu. Mỗi chỗ có 3 cách nhét dấu vào. Thử hết 3 ^ 8 cách rồi đếm.

Cậu Bé Pán Hành viết 11:41 ngày 01/10/2018

{code mình tìm dc} =))
Uses crt;
Const fo = ‘chenxau.out’;
dau: array[1…3] of String[1]= (’’, ‘-’, ‘+’);
s:array[1…9] of char=(‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’);
Var d:array[1…9] of String[1];
m:longInt;
f:text;
k:integer;
found:boolean;
Procedure Init;
Begin
Write(‘Cho M=’);
Readln(m);
found:=false;
end;
Function tinh(s:string):longint;
Var i,t:longint;
code:integer;
Begin
i:=length(s);
While not(s[i] in [’-’,’+’]) and (i>0) do dec(i);
val(copy(s,i+1,length(s)-i),t,code);
If i=0 then begin tinh:=t; exit; end
else
begin
delete(s,i,length(s)-i+1);
If s[i]=’+’ then tinh:=t+tinh(s);
If s[i]=’-’ then tinh:=tinh(s)-t;
end;
End;
Procedure Test(i:integer);
Var st:string; j:integer;
Begin
st:=’’;
For j:=1 to i do st:=st+d[j]+s[j];
If Tinh(st) = m then begin writeln(f,st); found:=true; end;
End;
Procedure Try(i:integer);
Var j:integer;
Begin
for j:=1 to 3 do
begin
d[i]:=dau[j]; Test(i);
If i<9 then try(i+1);
end;
End;
BEGIN
Clrscr;
Init;
Assign(f,fo);Rewrite(f);
for k:=1 to 2 do
begin
d[1]:=dau[k];
Try(2);
end;
If not found then write(f,‘khong co ngiem’);
Close(f);
END.

Bài liên quan
0