2 * 2 * 2 = 8
通りしかないので、総当たりで OK。今回は C# らしく LINQ で。クエリ式ならネスト深くならないし、途中の計算結果を let で保持できて、これはこれで便利。
using System; using System.Linq; namespace ABC079C { class Program { static void Main(string[] args) { var input = Console.ReadLine(); var A = input[0] - '0'; var B = input[1] - '0'; var C = input[2] - '0'; var D = input[3] - '0'; var op = new[] { '+', '-' }; var answer = ( from op1 in op from op2 in op from op3 in op let AB = op1 == '+' ? A + B : A - B let ABC = op2 == '+' ? AB + C : AB - C let ABCD = op3 == '+' ? ABC + D : ABC - D where ABCD == 7 select $"{A}{op1}{B}{op2}{C}{op3}{D}=7" ).FirstOrDefault(); Console.WriteLine(answer); } } }