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