Перебор всех чисел определенной длины и системы счисления - C (СИ)

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

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

Суть задачи: Пользователь вводит длину числа( не больше 10) и Систему счисления( не больше 16) , наша программа должна вывести количество "Выиграшных билетов", билет выиграшный, если сумма цифр в парных и не парных позициях совпадает. Нет проблемы как посчитать суммы, но я не могу сделать перебор варианта каждой длины в каждой системе счисления =/

Решение задачи: «Перебор всех чисел определенной длины и системы счисления»

textual
Листинг программы
char a[10]; 
int L;  // Длина
int N; // Система счисления.
for(i=0; i<L; i++) a[i] = 0;
while(1) {
  if (a[L-1] < N-1) a[L-1]++;
  else {
     for(i=L-2; i>=0; i--) {
       if (a[i] == N-1) continue;
       a[i] ++;
       for(j=i+1; j<L; j++) a[j] = 0;
       break; 
     }
     if (i < 0) break;
  }
  // Анализ очередного числа 
}

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

  1. Объявлены две переменные: a типа char с длиной 10 и L типа int с значением 10, которая обозначает длину массива a.
  2. Объявлена переменная N типа int, которая обозначает систему счисления.
  3. Инициализирован массив a нулями.
  4. Запущен бесконечный цикл while(1).
  5. В каждой итерации цикла проверяется последний элемент массива a. Если он меньше N-1, то увеличивается на 1.
  6. Если это условие не выполняется, то начинается цикл for, который проверяет все элементы массива a с конца. Если элемент равен N-1, то цикл продолжает работу со следующего элемента. Если элемент не равен N-1, то он увеличивается на 1, а все последующие элементы обнуляются.
  7. Если в цикле for не было найдено подходящего элемента, то цикл прерывается и начинается новая итерация внешнего цикла while.
  8. Если длина массива a равна 0, то цикл прерывается.
  9. После каждой итерации внешнего цикла while происходит анализ очередного числа.

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


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

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

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