Найдите сколько решений имеет уравнение rsrx + sru = rutr - C#

Формулировка задачи:

Дано равенство, в котором цифры заменены на буквы: rsrx + sru = rutr Найдите сколько у него решений, если различным буквам соответствуют различные цифры. может знаете менее прямолинейное решение?) а то как-то даже выглядит не хорошо.
/*Дано равенство, в котором цифры заменены на буквы: 
 rsrx + sru = rutr
 
 Найдите сколько у него решений, если различным буквам соответствуют различные цифры.*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Задача1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Solution.Sol());
            Console.ReadLine();
        }
    }
}
 
class Solution
{
    static public int Sol()
    {
        int r, s, x, t, u, n = 0;
        for (r = 0; r <= 9; r++)
            for (s = 0; s <= 9; s++)
                for (x = 0; x <= 9; x++)
                    for (t = 0; t <= 9; t++)
                        for (u = 0; u <= 9; u++)
                            if (r * 1000 + s * 100 + r * 10 + x + s * 100 + r * 10 + u == r * 1000 + u * 100 + t * 10 + r) n++;
            return n;
    }
}

Код к задаче: «Найдите сколько решений имеет уравнение rsrx + sru = rutr - C#»

textual
    class Program
    {
        static int[] f = new int[5];
        static int N;
        static void Main(string[] args)
        {
            Figure(0);
            Console.WriteLine("{0}", N);
            Console.ReadKey();
        }
        static void Figure(int n)
        {
            int j,a1,a2,a3;
            for (int i = 0; i < 10; i++)
            {
                for (j = 0; j < n; j++) if (f[j] == i) break;
                    if (j==n)
                    {
                        f[n] = i;
                        if (n < 4) Figure(n + 1);
                        else
                        {
                            a1=f[0] * 1000 + f[1] * 100 + f[0] * 10 + f[2];
                            a2=f[1] * 100 + f[0] * 10 + f[3];
                            a3=f[0] * 1000 + f[3] * 100 + f[4] * 10 + f[0];
                            if (a1 + a2 == a3)
                            {
                                N++;
                                Console.WriteLine("{0}+{1}={2}", a1, a2, a3);
                            }
                        }
                    }
            }
        }
    }
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

13   голосов, оценка 3.846 из 5


СДЕЛАЙТЕ РЕПОСТ