Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Program
- {
- /// <summary>
- /// Решение задачи "вывести все уникальные комбинации из трех цифр, где в каждой комбинации ни одна цифра не повторяется и нет комбинаций, состоящих их одних и тех же трех цифр".
- /// </summary>
- /// <param name="args"></param>
- static void Main(string[] args)
- {
- int[] myArray = new int[(789-12+1)];
- myArray[0] = 12;
- int index = 1;
- //массив заполняется числами от 12 до 789
- while (index < myArray.Length)
- {
- myArray[index] = myArray[index - 1] + 1;
- index++;
- }
- //проход по массиву с проверкой на повторяющиеся цифры, если они есть - число обнуляется
- index = 0;
- while (index < myArray.Length)
- {
- int number = myArray[index];
- int a = number % 10; //целочисленный ОСТАТОК деления на 10
- number /= 10; //вернет целочисленный результат деления на 10, т. е. для 12 вернет 1, а не 1,2, поскольку это int
- int b = number % 10;
- int c;
- if (myArray[index] < 100)
- {
- c = 0;
- }
- else
- {
- number /= 10;
- c = number % 10;
- }
- if (a == b || b == c || a == c)
- {
- myArray[index] = 0;
- }
- index++;
- }
- //проход по массиву со сравнением каждого числа с каждым следующим (обнуленные пропускаются),
- //если все цифры совпадают - большее число обнуляется
- index = 0;
- int indexOfComparedNumber;
- while (index < myArray.Length)
- {
- if (myArray[index] != 0)
- {
- int number = myArray[index];
- int a = number % 10;
- number /= 10;
- int b = number % 10;
- int c;
- if (myArray[index] < 100)
- {
- c = 0;
- }
- else
- {
- number /= 10;
- c = number % 10;
- }
- indexOfComparedNumber = index+1;
- while (indexOfComparedNumber < myArray.Length)
- {
- if (myArray[indexOfComparedNumber] != 0)
- {
- int comparedNumber = myArray[indexOfComparedNumber];
- int aCompared = comparedNumber % 10;
- comparedNumber /= 10;
- int bCompared = comparedNumber % 10;
- int cCompared;
- if (myArray[indexOfComparedNumber] < 100)
- {
- cCompared = 0;
- }
- else
- {
- comparedNumber /= 10;
- cCompared = comparedNumber % 10;
- }
- if ((a == aCompared || a == bCompared || a == cCompared)
- && (b == aCompared || b == bCompared || b == cCompared)
- && (c == aCompared || c == bCompared || c == cCompared))
- {
- myArray[indexOfComparedNumber] = 0;
- }
- }
- indexOfComparedNumber++;
- }
- }
- index++;
- }
- //Вывод не обнуленных чисел в консоль
- index = 0;
- while (index < myArray.Length)
- {
- if (myArray[index] != 0)
- {
- if (myArray[index] < 100)
- {
- Console.WriteLine("0"+myArray[index]);
- }
- else
- {
- Console.WriteLine(myArray[index]);
- }
- }
- index++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement