Найти все трехзначные числа, сумма цифр которых равна данному целому числу - C (СИ)
Формулировка задачи:
Найти все трехзначные числа, сумма цифр которых равна данному целому числу.
Помогите , пожалуйста, решить. Желательно , чем проще, тем лучше=) Решение задачи: «Найти все трехзначные числа, сумма цифр которых равна данному целому числу»
textual
Листинг программы
#include <stdio.h> int sum_digits(int n) { int sum = 0; while( n != 0 ) { sum += n % 10; n /= 10; } return sum; } int main(void) { while( 1 ) { int n; do { puts("Input number:"); } while( scanf("%d", &n) != 1 ); if( n <= 0 || n > 27 ) { break; } int i; for( i = 100; i < 1000; ++i ) { if( sum_digits(i) == n ) { printf("%d\n", i); } } } return 0; }
Объяснение кода листинга программы
В этом коде:
- Создана функция
sum_digits
, которая принимает целое число и возвращает сумму его цифр. Для этого используется циклwhile
, который выполняется до тех пор, пока число не станет равным нулю. В каждой итерации цикла к сумме прибавляется последняя цифра числа, затем число делится на 10. - В функции
main
создается бесконечный цикл, который продолжается до тех пор, пока пользователь не введет число, меньшее или равное нулю или больше 27. - Внутри цикла пользователю предлагается ввести число.
- Если число удовлетворяет условиям, то в основной цикл программы вводится переменная
i
и инициализируется значением 100, а затем с помощью циклаfor
перебираются все трехзначные числа от 100 до 999. - Для каждого числа вычисляется сумма его цифр с помощью функции
sum_digits
. Если сумма равна введенному числу, то число выводится на экран. - Если во время выполнения программы пользователь вводит ноль или отрицательное число, программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д