Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 24.11.2018
Сообщений: 8

Вывести слово "Да" , если число N делится на 7, или остаток от деления N на 7

24.11.2018, 21:26. Показов 6181. Ответов 19

Студворк — интернет-сервис помощи студентам
На Паскале


Гарри Поттер на досуге занимается исследованием свойств чисел .Однажды старом заклинании он увидел число 54765287694769587387647836748 и захотел узнать, а делиться ли оно на 3 ? Напишите программу , помогающую Гарри решить эту проблему для любого N(0<n<10^1000).

Формат входных данных:
Исходный файл содержит одно целое число N.

Формат выходных данных :
В выходной файл вывести слово "Да" , если число N делиться на 7 , или остаток от деления N на 7.

Пример:
input.txtoutput.txt
547652876947695873876478367482

указания к решению .Для решения задачи требуется вспомнить признак делимости на 3.Само число из файла следует считывать по отдельным цифрам и сразу находить их сумму .
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.11.2018, 21:26
Ответы с готовыми решениями:

Если число m делится нацело на число n, то вывести на экран частное от деления (иначе вывести остаток)
Пользователь вводит целые числа m и n. Если число m делится нацело на число n, то вывести на экран частное от деления. В противном случае...

Если a делится на b или b делится на a, то вывести 1, иначе – любое другое число
Даны два целых числа a и b. Если a делится на b или b делится на a, то вывести 1, иначе – любое другое число. Условные операторы и...

Если а делится на b или b делится на а, то вывести 1, иначе— любое другое число
Даны два целых числа а и b. Если а делится на b или b делится на а, то вывести 1, иначе— любое другое число. Условные операторы и...

19
Модератор
10428 / 5716 / 3404
Регистрация: 17.08.2012
Сообщений: 17,380
25.11.2018, 04:53
Цитата Сообщение от 8nteger Посмотреть сообщение
на 3
Цитата Сообщение от 8nteger Посмотреть сообщение
на 7
Так на 3 или на 7?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
25.11.2018, 08:18
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const
  d = 3;
var
  t : Text;
  c : Char;
  r : Integer;
begin
  Assign(t, 'input.txt');
  Reset(t);
  while Not EOF(t) do
    begin
      Read(t, c);
      if c in ['0'..'9'] then
        r := (r * 10 + Ord(c) - 48) mod d;
    end;
  Close(t);
  Assign(t, 'output.txt');
  Rewrite(t);
  Write(t, r);
  Close(t);
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
25.11.2018, 10:23
JuriiMW,
Pascal
19
  if r=0 then WriteLn(t,'Да') else WriteLn(t,r);
Добавлено через 3 минуты
Можно использовать проверку на конец строки
Pascal
10
  while not EoLn(t) do
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
25.11.2018, 10:28
bormant, у ТС не сказано „в единственной строке“. Поэтому я предположил, что число не обязательно записано в одну строку…

Добавлено через 2 минуты
Тем более, там где про „Да“, там ещё и делитель 7. Х.з.! Может эта строка вообще не от сюда.
Ведь по примеру происходит деление именно на 3… ;–)
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
25.11.2018, 10:37
JuriiMW,
код написан универсально для любого делителя.
Для только 3 можно было сэкономить все деления, кроме одного ;-)
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
25.11.2018, 10:40
Цитата Сообщение от bormant Посмотреть сообщение
код написан универсально для любого делителя
Ну, дык, пришлось проверять обе версии. И с 7 и 3… ;–)
0
0 / 0 / 0
Регистрация: 24.11.2018
Сообщений: 8
25.11.2018, 10:55  [ТС]
У меня не выходить
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
25.11.2018, 11:03
Надо поднатужиться...
0
Модератор
10428 / 5716 / 3404
Регистрация: 17.08.2012
Сообщений: 17,380
25.11.2018, 13:43
JuriiMW, bormant, ничего не делайте, смысла особенного нет.

8nteger, Вы до сих пор не уточнили, на что делить: на 3 или на 7. Я бы не стал ничего спрашивать, а просто исправил бы Ваш вопрос, если бы число 54765287694769587387647836746 не делилось на 21 без остатка.
0
0 / 0 / 0
Регистрация: 24.11.2018
Сообщений: 8
25.11.2018, 14:39  [ТС]
нужно делит на 7
0
Модератор
10428 / 5716 / 3404
Регистрация: 17.08.2012
Сообщений: 17,380
25.11.2018, 15:15
В программе JuriiMW замените
Pascal
2
  d = 7;
Pascal
14
        r := (r * 3 + Ord(c) - Ord('0')) mod d;
и, кроме этого, замените строки, как посоветовал bormant.
0
0 / 0 / 0
Регистрация: 24.11.2018
Сообщений: 8
25.11.2018, 15:35  [ТС]
нужно написать программу которая будет считывать сумму 54765287694769587387647836748 этих цифр и после этого делит его на семь например 5+4+7+6+5+...6+7+4+8=177 и делить его на 177 mod 7 =2
0
Модератор
10428 / 5716 / 3404
Регистрация: 17.08.2012
Сообщений: 17,380
25.11.2018, 15:48
8nteger, это Вам не нужно. Так, как Вы написали, нельзя выяснить, делится ли число на 7. Например, 86415 делится на 7, но, если посчитать так, как Вы посчитали, то получится остаток 3, что неверно.

Вот Вам полная программа, проверяйте:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const
  d = 7;
 
var
  t: text;
  c: char;
  r: Integer;
 
begin
  assign(t, 'input.txt');
  reset(t);
  r := 0;
  while not eoln(t) do
    begin
      read(t, c);
      r := (r * 3 + ord(c) - ord('0')) mod d
    end;
  close(t);
  assign(t, 'output.txt');
  rewrite(t);
  if r = 0 then writeln(t, 'Да') else writeln(t, r);
  close(t)
end.
Если будете тестировать программу не на проверочном сайте, а на Вашем компьютере, не забудьте в папке с программой создать текстовый файл input.txt с соответствующим содержимым. Результат будет в папке с программой в файле output.txt.
0
0 / 0 / 0
Регистрация: 24.11.2018
Сообщений: 8
25.11.2018, 16:36  [ТС]
вы на каком паскале пишите а то у меня выходить ошибка
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
25.11.2018, 17:45
Цитата Сообщение от 8nteger Посмотреть сообщение
у меня выходить ошибка
Какая?
0
0 / 0 / 0
Регистрация: 24.11.2018
Сообщений: 8
25.11.2018, 17:47  [ТС]
11 reset (t) выходить ошибка
0
Модератор
10428 / 5716 / 3404
Регистрация: 17.08.2012
Сообщений: 17,380
25.11.2018, 18:05
Лучший ответ Сообщение было отмечено 8nteger как решение

Решение

8nteger, Вы не создали текстовый файл. Я же Вам об этом писал.

Запустите текстовый редактор, например, "Блокнот", наберите в нём нужное Вам число, например, 54765287694769587387647836748, и сохраните этот текст в папку с программой.

Ещё раз повнимательнее перечитайте, что я Вам писал.

Добавлено через 9 минут
На всякий случай, вот Вам программа НЕ для проверочного сайта:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const
  d = 7;
 
var
  c: char;
  r: Integer;
 
begin
  write('Введите число: ');
  r := 0;
  while not eoln do
    begin
      read(c);
      r := (r * 3 + ord(c) - ord('0')) mod d
    end;
  readln;
  if r = 0 then write('Да') else write(r);
  readln
end.
Файлы не применяются, поэтому текстовый файл создавать не нужно. Число введите с клавиатуры, и нажмите клавишу <Enter>. Результат работы программы будет выведен на экран.
0
 Аватар для Mikstereo
98 / 36 / 18
Регистрация: 05.11.2018
Сообщений: 231
25.11.2018, 19:05
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const
  d = 7;
var
  c: char;
  r: Integer;
begin
  r := 0;
  while not eoln do
    begin
      read(c);
      r := (r * 3 + ord(c) - ord('0')) mod d
    end;
  readln;
  if r = 0 then write('YES') else write(r);
end.
0
Модератор
10428 / 5716 / 3404
Регистрация: 17.08.2012
Сообщений: 17,380
25.11.2018, 20:42
Mikstereo, позвольте поинтересоваться, а с какой целью Вы выложили копию моей программы? Просто так, или в этом есть какой-то тайный смысл?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.11.2018, 20:42
Помогаю со студенческими работами здесь

Если a делится на b или b делится на a, то вывести 1, иначе – любое другое число
Доброго времени суток! В С++ недавно, но в универе уже задали такие задачи: 4)Даны два целых числа a и b. Если a делится на b или b...

Если число четное, вывести его остаток от деления на 3, если нечетное, то найти целую часть при деление на 5
ввести число, если число четное, вывести его остаток от деления на 3, если нечетное, то найти целую часть при деление на 5

Даны два целых числа a и b. Если a делится на b или b делится на a, то вывести 1, иначе – любое другое число
Даны два целых числа a и b. Если a делится на b или b делится на a, то вывести 1, иначе – любое другое число. Условные операторы и...

Если целое число m делится нацело на целое число n, то вывести на экран частное от деления, в противном случае вывести сообщение вида
1 Если целое число M делится нацело на целое число N, то вывести на экран частное от деления, в противном случае вывести сообщение вида «M...

Если целое число m делится нацело на целое число n, то вывести на экран частное от деления, в противном случае вывести сообщение
1. Если целое число m делится нацело на целое число n, то вывести на экран частное от деления, в противном случае вывести сообщение вида...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru