Создание цикла с циклами, где их количество задается с клавиатуры - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый вечер! Сразу к делу... Человек пишет число (к примеру 7)... Нужно сделать так чтобы создались 7 циклов (один внутри другого) со своими переменными и т.д. и в результате посчитало суму всех чисел с перебора... Помогите пожалуйста(

Решение задачи: «Создание цикла с циклами, где их количество задается с клавиатуры»

textual
Листинг программы
/*Функция SumDigits вычисляет сумму цифр числа, переданного ей в качестве аргумента*/
int SumDigits (int number)
{
   int sum = 0; /*Переменная в которой будет накапливаться сумма*/
 
   do
   {
      sum += number % 10; /*Прибавляем к sum остаток от деления number на 10 (т.е. последнюю цифру)*/
   }while (number /= 10); /*Делим number на 10, целую часть от деления помещаем в number же. Повторяем все до
                                       тех пор, пока number не станет равным нулю*/
 
   return sum; /*Возвращаем найденную сумму*/
}
 
int S (int dig)
{
   int i, j, count = 0, end = 10; /*Объявляем переменные для счетчика цикла, счетчика найденных чисел
                                           и для верхнего предела цикла*/
 
   if (dig < 1) /*Проверяем разрядность числа, если она меньше единицы возвращаем 0*/
      return 0;
 
   /*Последнее число разрядности n будет равно 10^n - 1. В первом цикле находим 10^n, -1 представим во втором 
      цикле как строгое неравенство i < end*/
   for (i = 1; i < dig; i++)
      end *= 10;
 
   for (i = 0; i < end; i++) 
      for (j = 0; j < end; j++)
         if ( SumDigits(i) == SumDigits(j)) 
            count++; 
 
   return count; /*Возвращаем найденное количество чисел*/
}

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

  1. Первый шаг - ввод числа с клавиатуры, значение которого будет использоваться в функции.
  2. Функция SumDigits принимает число в качестве аргумента и возвращает сумму его цифр.
  3. Внутри функции используется цикл do-while, который будет выполняться до тех пор, пока число не станет равным нулю.
  4. Внутри цикла происходит прибавление остатка от деления числа на 10 к переменной sum.
  5. Затем число делится на 10 и целая часть от деления присваивается обратно в переменную number.
  6. После выполнения цикла функция возвращает сумму цифр числа.
  7. Следующая функция S принимает число в качестве аргумента и возвращает количество чисел с заданным количеством цифр.
  8. Внутри функции объявляются переменные i, j, count и end, которые будут использоваться в циклах.
  9. Затем происходит проверка на разрядность числа. Если разрядность меньше единицы, функция возвращает 0.
  10. Затем происходит вычисление верхнего предела для второго цикла. Он равен 10 в степени разрядности числа минус 1.
  11. Первый цикл вычисляет 10 в степени разрядности числа.
  12. Второй цикл проверяет, есть ли числа с одинаковым количеством цифр.
  13. Если найдено совпадение, переменная count увеличивается на 1.
  14. После выполнения второго цикла функция возвращает количество найденных чисел.
  15. Значение переменной count будет использовано в качестве результата выполнения функции.

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


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

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

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