В выражении вместо "?" вставить знак одного из четырех арифметических действий, чтобы результат вычислений равнялся 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д