Skip to content

Instantly share code, notes, and snippets.

@tdakkota
Last active July 2, 2020 03:51
Show Gist options
  • Save tdakkota/fd0d11e0b3c7fa4603182dbb7df89f74 to your computer and use it in GitHub Desktop.
Save tdakkota/fd0d11e0b3c7fa4603182dbb7df89f74 to your computer and use it in GitHub Desktop.
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))
}
@tdakkota
Copy link
Author

tdakkota commented Jul 2, 2020

Задание 27 № 6202

По каналу связи передаются данные в виде последовательности положительных целых чисел. Количество чисел заранее неизвестно, но не менее двух, признаком конца данных считается число 0. После данных передаётся контрольное значение. Оно равно такому максимально возможному произведению двух чисел из переданного набора, которое делится на 7, но не делится на 49. Если такое произведение получить нельзя, контрольное значение считается равным 1.

Описание входных данных.

В каждой строке исходных данных содержится одно целое число. Сначала идут строки с основными данными — положительными числами, затем число 0 (признак окончания данных), в последней строке — контрольное значение.
Программа должна вывести отчёт по форме, приведённой ниже в примере.
Пример входных данных:

6
7
8
9
0
64

Пример выходных данных для приведённого выше примера входных данных:

Введено чисел: 4
Контрольное значение: 64
Вычисленное значение: 63
Значения не совпали

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment