Использование признака делимости на 7 - QBasic

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

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

Здравствуйте! Нашла на этом форуме решение этой задачи на Паскале, но его не знаю, поэтому прошу помочь решить на Бэйсике. Задача из школьной олимпиады 2011 года. Однажды Витя Делилкин встретился с такой задачей: ему следовало определить какие из предложенных целых положительных чисел делятся без остатка на семь. Чисел было много, числа были большие… Витя Делилкин сразу принялся за дело. Взял много листов бумаги и принялся делить столбиком. Давайте поможем Вите решить его задачу быстрее. Посмотрим, что говориться в Википедии по поводу признаков делимости на 7. … Для того, чтобы натуральное число делилось на 7 необходимо и достаточно, чтобы алгебраическая сумма чисел, образующих нечётные группы по три цифры (начиная с единиц) взятых со знаком «+» и чётных со знаком «-» делилась на семь (например, число 689255. Первая группа со знаком «+» (255), вторая со знаком «-» (689). Отсюда 255 + (-689) = −434. В свою очередь 434 : 7 = 62). … Напишите программу, определяющую, сколько из предложенных чисел делятся без остатка на 7.

Решение задачи: «Использование признака делимости на 7»

textual
Листинг программы
  1. INPUT "enter numbers count: ", n
  2. FOR i = 1 TO n
  3.     INPUT s$
  4.     IF check(s$) = 0 THEN ans = ans + 1
  5. NEXT
  6. PRINT "total: "; ans
  7.  
  8. FUNCTION check (s$)
  9.     sumEven = 0
  10.     sumOdd = 0
  11.     curIndexGroup = 0
  12.  
  13.     FOR i = LEN(s$) TO 1 STEP -3
  14.         curIndexGroup = curIndexGroup + 1
  15.         curSum = VAL(MID$(s$, i - 2, 3))
  16.         IF curIndexGroup MOD 2 = 0 THEN
  17.             sumEven = sumEven + curSum
  18.         ELSE
  19.             sumOdd = sumOdd + curSum
  20.         END IF
  21.     NEXT
  22.     check = ABS(sumOdd - sumEven) MOD 7
  23. END FUNCTION

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

В этом коде пользователь вводит количество чисел для проверки, а затем вводится каждое число. Код проверяет каждое число на делимость на 7, используя функцию check. Функция разбивает каждое число на группы по три цифры и подсчитывает сумму каждой группы. Затем она вычисляет разницу между суммой четных и нечетных групп и берет остаток от деления этой разницы на 7. Если результат равен 0, то число делится на 7 без остатка. В конце выводится общее количество чисел, которые делятся на 7.

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


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

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

12   голосов , оценка 3.75 из 5

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

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

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