В выражении вместо "?" вставить знак одного из четырех арифметических действий, чтобы результат вычислений равнялся 35 - C#
Формулировка задачи:
рекурсия
В написанном выражении ((((1 ? 2) ? 3) ? 4) ? 5) ? 6
вместо каждого знака "?" вставить знак одного из четырех арифметических действий: +, -, *, / так, чтобы результат вычислений равнялся 35 (при делении дробная часть в частном отбрасывается).
помогите пожалуйста перевести эту задачу на си шарп.Заранее спасибо!
Листинг программы
- Var z: string[5];
- Procedure OPER(r,k: integer);
- Var i:byte;
- Begin
- If k = 6 then
- If r = 35 then begin
- Write('((((1 ',z[1],' ');
- For i:=2 to 5 do Write(i,') ',z[i],' ');
- WriteLn('6 = 35')
- end
- else
- else begin
- z[k]:='+'; OPER(r+k+1,k+1);
- z[k]:='-'; OPER(r-k-1,k+1);
- z[k]:='*'; OPER(r*(k+1),k+1);
- z[k]:='/'; OPER(r div (k+1),k+1);
- end
- End;
- Begin
- OPER(1,1)
- End.
Решение задачи: «В выражении вместо "?" вставить знак одного из четырех арифметических действий, чтобы результат вычислений равнялся 35»
textual
Листинг программы
- class Program
- {
- static void OPER(int r, int k,string []z)
- {
- if (k == 6)
- {
- if (r == 35)
- {
- Console.Write("((((1 " + z[1] + " ");
- for (int i = 2; i < 6; ++i)
- Console.Write(i + ")" + z[i] + " ");
- Console.WriteLine("6 = 35");
- }
- }
- else
- {
- z[k] = "+"; OPER(r + k + 1, k + 1,z);
- z[k] = "-"; OPER(r - k - 1, k + 1,z);
- z[k] = "*"; OPER(r * (k + 1), k + 1,z);
- z[k] = "/"; OPER(r / (k + 1), k + 1,z);
- }
- }
- static void Main(string[] args)
- {
- string[] z = new string[6];
- OPER(1, 1,z);
- Console.ReadKey(true);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д