Last active
July 2, 2020 03:51
-
-
Save tdakkota/fd0d11e0b3c7fa4603182dbb7df89f74 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"fmt" | |
) | |
type Context struct { | |
Max int | |
Max7 int | |
} | |
func (c Context) Verify() int { | |
if c.Max != 0 && c.Max7 != 0 { | |
return c.Max * c.Max7 | |
} | |
return 1 | |
} | |
func next() (n int) { | |
fmt.Scanf("%d", &n) | |
return | |
} | |
func format(b bool) (s string) { | |
if !b { | |
return "не " | |
} | |
return | |
} | |
func main() { | |
var verifier, counter int | |
ctx := Context{} | |
loop: | |
for { | |
n := next() | |
switch { | |
case n == 0: | |
verifier = next() | |
break loop | |
case n%7 != 0 && n > ctx.Max: | |
ctx.Max = n | |
case n%7 == 0 && n%49 != 0 && n > ctx.Max7: | |
ctx.Max7 = n | |
} | |
counter++ | |
} | |
counted := ctx.Verify() | |
fmt.Printf(`Введено чисел: %d | |
Контрольное значение: %d | |
Вычисленное значение: %d | |
Значения %sсовпали`, counter, verifier, counted, format(counted == verifier)) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Задание 27 № 6202
По каналу связи передаются данные в виде последовательности положительных целых чисел. Количество чисел заранее неизвестно, но не менее двух, признаком конца данных считается число 0. После данных передаётся контрольное значение. Оно равно такому максимально возможному произведению двух чисел из переданного набора, которое делится на 7, но не делится на 49. Если такое произведение получить нельзя, контрольное значение считается равным 1.
Описание входных данных.
В каждой строке исходных данных содержится одно целое число. Сначала идут строки с основными данными — положительными числами, затем число 0 (признак окончания данных), в последней строке — контрольное значение.
Программа должна вывести отчёт по форме, приведённой ниже в примере.
Пример входных данных:
Пример выходных данных для приведённого выше примера входных данных: