Автор | Сообщение |
|
Отправлено: 25.11.21 10:08. Заголовок: Задание 17 №164
Здравствуйте! № 164 Подскажите, в чем ошибка (не сходится ответ) {В файле 17-3.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество троек элементов последовательности, в которых произведение кратно 7, а сумма оканчивается на 5, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.} //Не совпадает с ответом ### assign(input, '17-3.txt'); var a:=readinteger; var b:=readinteger; var kol:=0; var maxS:=-10000*3; while not eof() do begin var c:=readinteger; var P:=a*b*c; var S:=a+b+c; if (abs(S mod 10)=5) and (P mod 7=0) then begin inc(kol); if S>maxS then maxS:=S; end; (a,b):=(b,c); end; print(kol, maxS);
|
|
|
Ответов - 6
[только новые]
|
|
|
| Администратор
|
Сообщение: 3038
|
|
Отправлено: 25.11.21 10:52. Заголовок: У вас произведение н..
У вас произведение не помещается в 4-байтовую ячейку. var P: BigInteger := BigInteger(a)*b*c;
|
|
|
|
Отправлено: 25.11.21 20:39. Заголовок: Спасибо!..
Спасибо!
|
|
|
|
Отправлено: 17.12.21 10:16. Заголовок: Чтобы не вводить тип..
Чтобы не вводить тип BigInteger (задача-то не олимпиадная, чтобы не засчитывать ответ из-за ограниченности типа), можно поступить так: ((a mod 7 = 0) or (b mod 7 = 0) or (c mod 7 = 0)) Произведение кратно 7, если хотя бы один из множителей кратен 7
|
|
|
|
Отправлено: 14.04.22 23:28. Заголовок: Всем здравствуйте! П..
Всем здравствуйте! Помогите, пожалуйста, найти ошибку - тоже не сходится ответ в задаче №164. var n:=5001; var f:text;p:int64; a:array[1..5001] of integer; begin assign(f,'17-3.txt'); reset(f); for var i:=1 to n do readln(f,a[ i]); var c:=0; var mxs:=-10000*3; for var i:=1 to n-2 do begin p:=a[ i]*a[ i+1]*a[ i+2]; if (p mod 7 = 0) and (abs(a[ i]+a[ i+1]+a[ i+2]) mod 10 =5) then begin c:=c+1; mxs:=max(mxs,a[ i]+a[ i+1]+a[ i+2]) end; end; Print(c,mxs); end.
|
|
|
|
| Администратор
|
Сообщение: 3470
|
|
Отправлено: 15.04.22 16:44. Заголовок: У вас получается сли..
У вас получается слишком большое произведение, которое не помещается в 4 байта. Вспомните, что произведение делится на 7 тогда и только тогда, когда один из сомножителей делится на 7.
|
|
|
|
Отправлено: 15.04.22 23:35. Заголовок: Спасибо большое! В т..
Спасибо огромное! В таком варианте получилось Для массива еще добавила тип a:array[1..5001] of int64; И тогда все получается даже в исходном варианте.
|
|
|
|