Среди трехзначных чисел найти такие которые делятся на цифры из которых состоят - C (СИ)
Формулировка задачи:
Написать исходный текст программы.Среди трехзначных чисел найти такие которые делятся на цифры из которых состоят , а так же перевертыш этих чисел должны делиться на цифры из которых состоят. Вывести на экран
Решение задачи: «Среди трехзначных чисел найти такие которые делятся на цифры из которых состоят»
textual
Листинг программы
- #include <stdbool.h>
- #include <stdio.h>
- int get_digit(int number, int n_digit)
- {
- while( --n_digit ) {
- number /= 10;
- }
- return number % 10;
- }
- bool is_divided_by_its_digits(int number)
- {
- int digit;
- for( int i = 1; i != 4; ++i ) {
- digit = get_digit(number, i);
- if( digit == 0 || number % digit != 0 ) return false;
- }
- return true;
- }
- int get_reverse_number(int number)
- {
- int reverse_number = 0;
- int pow10 = 1;
- for( int i = 3; i != 0; --i ) {
- reverse_number += pow10 * get_digit(number, i);
- pow10 *= 10;
- }
- return reverse_number;
- }
- bool divided_by_its_digits[1000];
- int main(int argc, char* argv[])
- {
- int i;
- for( i = 100; i != 1000; ++i ) {
- divided_by_its_digits[i] = is_divided_by_its_digits(i);
- }
- int reverse_i;
- for( i = 100; i != 1000; ++i ) {
- if( divided_by_its_digits[i] ) {
- reverse_i = get_reverse_number(i);
- if( divided_by_its_digits[reverse_i] ) {
- printf("%d and %d\n", i, reverse_i);
- divided_by_its_digits[reverse_i] = false;
- }
- }
- }
- return 0;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д