Вывести на экран только те трёхзначные числа у которых все цифры различны - C (СИ)

Узнай цену своей работы

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

вывести на экран только те трёхзначные числа у которых все цифры различны

Решение задачи: «Вывести на экран только те трёхзначные числа у которых все цифры различны»

textual
Листинг программы
  1. #include <stdbool.h>
  2. #include <stdio.h>
  3.  
  4. bool diff_digits(long n) {
  5.     static bool digits[10];
  6.     long i;
  7.     for (i = 0; i < 10; i++) { digits[i] = false; }
  8.     while (n != 0) {
  9.         i = n % 10;
  10.         if (digits[i]) { return false; }
  11.         digits[i] = true;
  12.         n /= 10;
  13.     }
  14.     return true;
  15. }
  16.  
  17. int main(void) {
  18.     long sum = 0;
  19.     for (long i = 100; i < 1000; i++) {
  20.         if (diff_digits(i)) { sum++; }
  21.     }
  22.     printf("%ld\n", sum);
  23.     return 0;
  24. }

Объяснение кода листинга программы

В этом коде реализована функция diff_digits, которая проверяет, являются ли все цифры в числе различными. Функция использует массив digits, который инициализируется значением false. Затем, при проверке каждой цифры числа, значение этой переменной устанавливается в true. Если встречается число, у которого все цифры различны, функция возвращает true. В функции main создаётся переменная sum, которая инициализируется нулём. Затем в цикле от 100 до 999 (не включая 999) проверяется каждое трёхзначное число на условие, когда все его цифры различны. Если это так, то к переменной sum прибавляется единица. В конце программы выводится значение переменной sum.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы