Форум » Массивы, сортировка, работа с файлами » задача 2643 из генератора Вариант 7 (тип 26) » Ответить

задача 2643 из генератора Вариант 7 (тип 26)

Агаркова: Здравствуйте. Пробовала решить задачу перебором пар чисел с помощью программы, но ответ получался просто огромный. Вот код задачи: [pre2]var k, n: integer; a: array of integer; f: text; begin k:=0; assign (f, '26-j1.txt'); reset (f); readln (f, n); writeln ('n=', n); SetLength (a, n); for var i := 0 to n-1 do read (f, a[ i]); close(f); for var i:=0 to n-2 do for var j:=i+1 to n-1 do if a[ i]+a[j]=100 then k := k+1;; println(k); end.[/pre2] Потом решила организовать с помощью электронной таблицы. Скопировала данные файла, вставила в первый столбец, удалила первую строку (она нам не нужна). Потом отсортировала числа по возрастанию. В столбце D написала числа по возрастанию (+1) от 1 до 99. В столбце Е написала числа по убыванию (+1) от 99 до 1. В столбце В считаю с помощью СЧЁТЕСЛИ в начальном массиве (столбец А) количество чисел, равных соответствующим значениям построчно столбца D (=СЧЁТЕСЛИ($A$2:$A$8321; "="&D1). В столбце С считаю с помощью СЧЁТЕСЛИ в начальном массиве (столбец А) количество чисел, равных соответствующим значениям построчно столбца Е (=СЧЁТЕСЛИ($A$2:$A$8321; "="&Е1). В столбец F вывела минимум среди пар чисел столбца В и С (=МИН(B1:C1)). потом нашла сумм(F1:F49) и прибавила к ним из строки 50 половину от найденного количества чисел 50 (т.е. 35). У меня получилось 3844. А в ответе 3845. Даже если найти сумму всего столбца F (с 1 по 99 строки) и разделить пополам, то все равно получается 3844. Пожалуйста, помогите найти в чем я ошибаюсь в программе и в экселе.

Ответов - 2

Поляков: Агаркова пишет: if a[ i]+a[j]=100 then k := k+1;; Вы не учитываете, что когда вы использовали две корзины, они не могут участвовать в дальнейших расчётах.

Агаркова: Спасибо. Уже поняла все свои ошибки,исправила таблицу и переделала программу. Все работает.



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