Вывести на экран только те трёхзначные числа у которых все цифры различны - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д