Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {*********************************************************************************
- * Задача: Написанном выражении ((((1?2)?3)?4)?5)?6 вместо каждого знака ?
- * поставьте знак одной из арифметических операций + - * :так чтобы получилось 35
- * Created by impressive https://vk.com/impressive_i
- *********************************************************************************}
- uses crt;
- var x : integer; //значение текущего подсчета
- k : integer; //порядок действия
- num : integer; //аргумент, который прибавляется, вычитается,
- //умножается или делится в зависимости от знака sign
- sign, sign_1, sign_2, sign_3, sign_4, sign_5 : integer;
- {Считает новое x на основе старого значения, аргумента num и кода операции oper}
- function getNewX(x : integer; num : integer; oper : integer):integer;
- begin
- case oper of
- 1 : x := x + num;
- 2 : x := x - num;
- 3 : x := x * num;
- 4 : x := x div num;
- else writeln('error');
- end;
- result := x;
- end;
- {Возвращает int-код операции в зависимости от порядка действия k}
- function getSign(k : integer):integer;
- var sign : integer;
- begin
- case k of
- 2 : sign := sign_1;
- 3 : sign := sign_2;
- 4 : sign := sign_3;
- 5 : sign := sign_4;
- 6 : sign := sign_5;
- else writeln('error');
- end;
- result := sign;
- end;
- {Возвращает символ char в зависимости от int-кода операции }
- function getCharBySign(oper : integer):char;
- var ch : char;
- begin
- case oper of
- 1 : ch := '+';
- 2 : ch := '-';
- 3 : ch := '*';
- 4 : ch := '/';
- else writeln('error');
- end;
- result := ch;
- end;
- {Main}
- begin
- {Рассматриваем все возможные комбинации}
- for sign_1 := 1 to 4 do
- for sign_2 := 1 to 4 do
- for sign_3 := 1 to 4 do
- for sign_4 := 1 to 4 do
- for sign_5 := 1 to 4 do
- begin
- x := 1; k := 2;
- while(k <= 6) do begin
- sign := getSign(k);
- x := getNewX(x, k , sign);
- inc(k);
- end;
- if( x = 35 ) then
- writeln('(((((1',getCharBySign(sign_1),
- '2)',getCharBySign(sign_2),
- '3)',getCharBySign(sign_3),
- '4)',getCharBySign(sign_4),
- '5)',getCharBySign(sign_5),
- '6)');
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement