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

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

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

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

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

textual
Листинг программы
  1. char a[10];
  2. int L;  // Длина
  3. int N; // Система счисления.
  4. for(i=0; i<L; i++) a[i] = 0;
  5. while(1) {
  6.   if (a[L-1] < N-1) a[L-1]++;
  7.   else {
  8.      for(i=L-2; i>=0; i--) {
  9.        if (a[i] == N-1) continue;
  10.        a[i] ++;
  11.        for(j=i+1; j<L; j++) a[j] = 0;
  12.        break;
  13.      }
  14.      if (i < 0) break;
  15.   }
  16.   // Анализ очередного числа
  17. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы