Найдите сколько решений имеет уравнение 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»
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);
}
}
}
}
}
}