Untitled

                Never    
C#
       
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static int CalculateUptoDown(int id)
        {
            int Result = 0, TempNumber = 0, operation = 1;
            Numbers.Clear();
            Sign.Clear();

            for (int i = 9; i > 0; i--)
            {
                TempNumber = TempNumber * 10 + i;
                if (id % 3 != 0)
                {
                    //123-45-67+89 , id = 909
                    if (operation == 2)
                    {
                        Result -= TempNumber;
                        Numbers.Add(TempNumber);
                        Sign.Add("-");
                    }
                    else
                    {
                        Result += TempNumber;
                        Numbers.Add(TempNumber);
                        Sign.Add("+");
                    }

                    TempNumber = 0;
                    operation = id % 3;
                }
                id /= 3;
            }

            if (operation == 2)
            {
                Result -= TempNumber;
                Numbers.Add(TempNumber);
                Sign.Add("-");
            }
            else
            {
                Result += TempNumber;
                Numbers.Add(TempNumber);
                Sign.Add("+");
            }

            return Result;
        }
        //Вычисляет возможные комбинации
        static int CalculateDowntoUp(int id)
        {
            int Result = 0, TempNumber = 0, operation = 1;
            Numbers.Clear();
            Sign.Clear();

            for (int i = 1; i < 10; ++i)
            {
                TempNumber = TempNumber * 10 + i;
                if (id % 3 != 0)
                {
                    //123-45-67+89 , id = 909
                    if (operation == 2)
                    {
                        Result -= TempNumber;
                        Numbers.Add(TempNumber);
                        Sign.Add("-");
                    }
                    else
                    {
                        Result += TempNumber;
                        Numbers.Add(TempNumber);
                        Sign.Add("+");
                    }

                    TempNumber = 0;
                    operation = id % 3;
                }
                id /= 3;
            }

            if (operation == 2)
            {
                Result -= TempNumber;
                Numbers.Add(TempNumber);
                Sign.Add("-");
            }
            else
            {
                Result += TempNumber;
                Numbers.Add(TempNumber);
                Sign.Add("+");
            }

            return Result;
        }
        static List<int> Numbers { get; set; }
        static List<string> Sign { get; set; }
        static void Main(string[] args)
        {
            Numbers = new List<int>();
            Sign = new List<string>();
            int value = 100, count = 0;
            //20000 - количество возможных комбинаций
            //С низу в верх 1 - 9
            for (int i = 0; i < 20000; i++)
            {
                int calculatedValue = CalculateDowntoUp(i);
                if (calculatedValue == value)
                {
                    count++;
                    for (int index = 0; index < Numbers.Count; index++)
                        Console.Write($"{((index == 0) ? "" : Sign[index]),-2} {Numbers[index],-3}");
                    Console.WriteLine($"= {value}");
                }
            }
            Console.WriteLine("Найдено " + count + " комбинаций");
            Console.WriteLine(new string('-',50));
            count = 0;
            //20000 - количество возможных комбинаций
            //С верху в низ 9 - 1
            for (int i = 0; i < 20000; i++)
            {
                int calculatedValue = CalculateUptoDown(i);
                if (calculatedValue == value)
                {
                    count++;
                    for (int index = 0; index < Numbers.Count; index++)
                        Console.Write($"{((index == 0) ? "" : Sign[index]),-2} {Numbers[index],-3}");
                    Console.WriteLine($"= {value}");
                }
            }
            Console.WriteLine("Найдено " + count + " комбинаций");
            Console.ReadLine();
        }
    }
}

Raw Text