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