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

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

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

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

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

textual
Листинг программы
#include <stdbool.h>
#include <stdio.h>
 
bool diff_digits(long n) {
    static bool digits[10];
    long i;
    for (i = 0; i < 10; i++) { digits[i] = false; }
    while (n != 0) {
        i = n % 10;
        if (digits[i]) { return false; }
        digits[i] = true;
        n /= 10;
    }
    return true;
}
 
int main(void) {
    long sum = 0;
    for (long i = 100; i < 1000; i++) {
        if (diff_digits(i)) { sum++; }
    }
    printf("%ld\n", sum);
    return 0;
}

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

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

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


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

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

13   голосов , оценка 4.231 из 5
Похожие ответы