В мире программирования существует множество увлекательных задач, требующих тщательного анализа и творческого подхода. Одной из таких интересных задач является проверка, состоит ли число из одинаковых цифр. Эта задача включает в себя разработку эффективного алгоритма, способного определить уникальность каждой цифры в числе и выявить, состоит ли оно из однотипных элементов. В нашей статье мы глубоко исследуем программы проверки, состоит ли число из одинаковых цифр.
C++
Пример программы на C++, которая проверяет, состоит ли число из одинаковых цифр:
#include <iostream> #include <unordered_set> bool hasSameDigits(int number) { std::unordered_set<int> digits; while (number > 0) { int digit = number % 10; if (digits.find(digit) != digits.end()) { // Цифра уже встречалась, значит, число не состоит из одинаковых цифр return false; } digits.insert(digit); number /= 10; } // Если мы дошли сюда, значит, все цифры уникальны return true; } int main() { int number; // Ввод числа std::cout << "Введите число: "; std::cin >> number; // Проверка if (hasSameDigits(number)) { std::cout << "Число состоит из одинаковых цифр.\n"; } else { std::cout << "Число не состоит из одинаковых цифр.\n"; } return 0; }
Программа использует хэш-таблицу (std::unordered_set) для отслеживания уникальных цифр в числе. Если программа обнаруживает повторение цифры, она сразу же возвращает false, указывая на то, что число не состоит из одинаковых цифр. Если весь цикл завершается без обнаружения повторений, то число состоит из одинаковых цифр.
C#
using System; using System.Collections.Generic; class Program { static bool HasSameDigits(int number) { HashSet<int> digits = new HashSet<int>(); while (number > 0) { int digit = number % 10; if (digits.Contains(digit)) { // Цифра уже встречалась, значит, число не состоит из одинаковых цифр return false; } digits.Add(digit); number /= 10; } // Если мы дошли сюда, значит, все цифры уникальны return true; } static void Main() { try { Console.Write("Введите число: "); int number = int.Parse(Console.ReadLine()); // Проверка if (HasSameDigits(number)) { Console.WriteLine("Число состоит из одинаковых цифр."); } else { Console.WriteLine("Число не состоит из одинаковых цифр."); } } catch (FormatException) { Console.WriteLine("Ошибка: Введите корректное целочисленное значение."); } } }
Программа использует HashSet для отслеживания уникальных цифр в числе. Если программа обнаруживает повторение цифры, она сразу же возвращает false, указывая на то, что число не состоит из одинаковых цифр. Если весь цикл завершается без обнаружения повторений, то число состоит из одинаковых цифр.
Python
def has_same_digits(number): digits = set() while number > 0: digit = number % 10 if digit in digits: # Цифра уже встречалась, значит, число не состоит из одинаковых цифр return False digits.add(digit) number //= 10 # Если мы дошли сюда, значит, все цифры уникальны return True def main(): try: number = int(input("Введите число: ")) # Проверка if has_same_digits(number): print("Число состоит из одинаковых цифр.") else: print("Число не состоит из одинаковых цифр.") except ValueError: print("Ошибка: Введите корректное целочисленное значение.") if __name__ == "__main__": main()
Программа использует множество (set) для отслеживания уникальных цифр в числе. Если программа обнаруживает повторение цифры, она сразу возвращает False, указывая на то, что число не состоит из одинаковых цифр. Если весь цикл завершается без обнаружения повторений, то число состоит из одинаковых цифр.
Java
import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class SameDigitsCheck { static boolean hasSameDigits(int number) { Set<Integer> digits = new HashSet<>(); while (number > 0) { int digit = number % 10; if (digits.contains(digit)) { // Цифра уже встречалась, значит, число не состоит из одинаковых цифр return false; } digits.add(digit); number /= 10; } // Если мы дошли сюда, значит, все цифры уникальны return true; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); try { System.out.print("Введите число: "); int number = scanner.nextInt(); // Проверка if (hasSameDigits(number)) { System.out.println("Число состоит из одинаковых цифр."); } else { System.out.println("Число не состоит из одинаковых цифр."); } } catch (java.util.InputMismatchException e) { System.out.println("Ошибка: Введите корректное целочисленное значение."); } finally { scanner.close(); } } }
Pascal
program SameDigitsCheck; var number, digit, tempNumber: Integer; digits: set of Integer; function HasSameDigits(number: Integer): Boolean; begin digits := []; while number > 0 do begin digit := number mod 10; if digit in digits then begin // Цифра уже встречалась, значит, число не состоит из одинаковых цифр Exit(False); end; Include(digits, digit); number := number div 10; end; // Если мы дошли сюда, значит, все цифры уникальны Result := True; end; begin Write('Введите число: '); Readln(number); // Проверка if HasSameDigits(number) then Writeln('Число состоит из одинаковых цифр.') else Writeln('Число не состоит из одинаковых цифр.'); end.
Программа использует множество (set of Integer) для отслеживания уникальных цифр в числе. Если программа обнаруживает повторение цифры, она сразу возвращает False, указывая на то, что число не состоит из одинаковых цифр. Если весь цикл завершается без обнаружения повторений, то число состоит из одинаковых цифр.
JavaScript
function hasSameDigits(number) { let digits = new Set(); while (number > 0) { let digit = number % 10; if (digits.has(digit)) { // Цифра уже встречалась, значит, число не состоит из одинаковых цифр return false; } digits.add(digit); number = Math.floor(number / 10); } // Если мы дошли сюда, значит, все цифры уникальны return true; } function main() { try { let number = parseInt(prompt("Введите число:")); // Проверка if (hasSameDigits(number)) { console.log("Число состоит из одинаковых цифр."); } else { console.log("Число не состоит из одинаковых цифр."); } } catch (error) { console.error("Ошибка: Введите корректные целочисленные значения."); } } main();
Программа использует объект Set для отслеживания уникальных цифр в числе. Если программа обнаруживает повторение цифры, она сразу возвращает false, указывая на то, что число не состоит из одинаковых цифр. Если весь цикл завершается без обнаружения повторений, то число состоит из одинаковых цифр.
PHP
<?php function hasSameDigits($number) { $digits = []; while ($number > 0) { $digit = $number % 10; if (in_array($digit, $digits)) { // Цифра уже встречалась, значит, число не состоит из одинаковых цифр return false; } $digits[] = $digit; $number = (int)($number / 10); } // Если мы дошли сюда, значит, все цифры уникальны return true; } try { $number = (int)readline("Введите число: "); // Проверка if (hasSameDigits($number)) { echo "Число состоит из одинаковых цифр.\n"; } else { echo "Число не состоит из одинаковых цифр.\n"; } } catch (Error $e) { echo "Ошибка: Введите корректные целочисленные значения.\n"; } ?>
Программа использует массив для отслеживания уникальных цифр в числе. Если программа обнаруживает повторение цифры, она сразу возвращает false, указывая на то, что число не состоит из одинаковых цифр. Если весь цикл завершается без обнаружения повторений, то число состоит из одинаковых цифр.