Форум » Обработка целых чисел » №4305(А.Кабанов) не сходятся ответы. » Ответить

№4305(А.Кабанов) не сходятся ответы.

inform_lesson: Добрый день. У меня получаются ответы 61 16325. [pre2] var m: array of integer; a, n, k, i, s, max: integer; begin assign(input, '17-3.txt'); readln(n); setlength(m, n); max := -30000; for i := 0 to n - 1 do begin readln(a); m[ i] := a; end; for i := 0 to n - 3 do if (abs(m[ i] * m[ i + 1] * m[ i + 2]) mod 7 = 0) and (abs(m[ i] + m[ i + 1] + m[ i + 2]) mod 10 = 5) then begin inc(k); s := m[ i] + m[ i + 1] + m[ i + 2]; if s > max then max := s; end; write(k, ' ', max); end.[/pre2]

Ответов - 3

cabanov.alexey: [pre2] readln(n); setlength(m, n); [/pre2] В отличие от 27 задания числа последовательности идут сразу с первого же числа.

inform_lesson: Результат не изменился после исправления

cabanov.alexey: Проблема оказалась хитрее. Когда вы считаете произведение происходит переполнение integer [pre2] var a, n, k, i, s, max: integer; begin var m := OpenRead('17-3.txt').Lines.Select(x->x.toInteger).toList; max := -30000; for i := 0 to m.Count - 3 do begin if ((m[ i] mod 7=0) or (m[i + 1] mod 7=0) or (m[i + 2] mod 7 = 0)) and (abs(m[ i] + m[i + 1] + m[i + 2]) mod 10 = 5) then begin inc(k); s := m[ i] + m[i + 1] + m[i + 2]; if s > max then max := s; end; end; write(k, ' ', max); end.[/pre2]




полная версия страницы