Найти все трехзначные числа, сумма цифр которых равна данному целому числу - 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;
}

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

В этом коде:

  1. Создана функция sum_digits, которая принимает целое число и возвращает сумму его цифр. Для этого используется цикл while, который выполняется до тех пор, пока число не станет равным нулю. В каждой итерации цикла к сумме прибавляется последняя цифра числа, затем число делится на 10.
  2. В функции main создается бесконечный цикл, который продолжается до тех пор, пока пользователь не введет число, меньшее или равное нулю или больше 27.
  3. Внутри цикла пользователю предлагается ввести число.
  4. Если число удовлетворяет условиям, то в основной цикл программы вводится переменная i и инициализируется значением 100, а затем с помощью цикла for перебираются все трехзначные числа от 100 до 999.
  5. Для каждого числа вычисляется сумма его цифр с помощью функции sum_digits. Если сумма равна введенному числу, то число выводится на экран.
  6. Если во время выполнения программы пользователь вводит ноль или отрицательное число, программа завершается.

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


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

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

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