Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 29.09.2023
Сообщений: 1

Определить количество пар последовательности удовлетворяющих условиям

13.12.2023, 17:18. Показов 762. Ответов 1

Студворк — интернет-сервис помощи студентам
Не могу решить задание 17 из ЕГЭ по информатике.
https://inf-ege.sdamgia.ru/problem?id=47221

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от −10 000 до 10 000 включительно. Определите количество пар последовательности, в которых только одно число оканчивается на 3, а сумма квадратов элементов пары не меньше квадрата максимального элемента последовательности, оканчивающегося на 3. В ответе запишите два числа: сначала количество найденных пар, затем максимальную из сумм квадратов элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Подключал уже и chat GPT, без толку. Искал ошибку отладчиком, не нашел. Я уже не знаю что предпринять, поэтому я здесь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<iostream>
#include<vector>
#include<fstream>
using namespace std;
 
int main() {
    ifstream doc("C:\\17.txt");
    if (!doc.is_open()) {
        cout << "Error" << endl;
        return 0;
    }
    int pos;
    vector<int> spisok;
    while (doc >> pos) {
        spisok.push_back(pos);
    }
    doc.close();
 
    int count = 0;
    int MaxKw = 0;
    int MaxKw2 = 0;
 
    for (int i = 1; i < spisok.size(); i++) {
        if (spisok[i - 1] % 10 == 3) {
            int kw = spisok[i - 1];
            kw = kw * kw;
            if (MaxKw < kw) {
                MaxKw = kw;
            }
        }
    }
    for (int i = 1; i < spisok.size(); i++) {
        if (((spisok[i - 1] % 10 == 3 && spisok[i] % 10 != 3) ||
            (spisok[i - 1] % 10 != 3 && spisok[i] % 10 == 3)) &&
            ((spisok[i - 1] * spisok[i - 1]) + (spisok[i] * spisok[i]) >= MaxKw)) {
            ++count;
            int sumkw = spisok[i - 1] * spisok[i - 1] + spisok[i] * spisok[i];
            if (MaxKw2 < sumkw) {
                MaxKw2 = sumkw;
            }
        }
    }
    cout << count << " " << MaxKw2 << endl;
    return 0;
}
Добавлено через 40 минут
Решение найдено. "Для отрицательных чисел % дает отрицательное значение. Так что проверять %10 == 3 некорректно."

Добавлено через 4 минуты
Также "Искать максимальный квадрат нужно среди всех чисел, а у вас последнее не проверяется."
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2023, 17:18
Ответы с готовыми решениями:

Определить количество дней удовлетворяющих условиям
Используя функции пользователя и арифметику указателей. Определить количество дней в первой половине мая, когда температура воздуха...

Определить количество чисел в файле удовлетворяющих заданным условиям
Помогите) Файл містить 100 цілих чисел. Підрахувати, скільки серед них є трійок та скільки чисел більші десяти. Спасибо Файл содержит...

Определить количество членов последовательности удовлетворяющих заданному условию
Даны натуральные числа n, a1,...,an. Определить количество членов ak последователь-ности a1,...,an, удовлетворяющих условию

1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6136 / 2830 / 1039
Регистрация: 01.06.2021
Сообщений: 10,324
13.12.2023, 19:24
Лучший ответ Сообщение было отмечено Royal_X как решение

Решение

Цитата Сообщение от Twidt88 Посмотреть сообщение
"Для отрицательных чисел % дает отрицательное значение. Так что проверять %10 == 3 некорректно."
based

В С++ реализовано не математическое деление с остатком, в формуле которой используется floor, а реализовано нечто, похожее на функцию remainder, с использованием truncate.

Математическое деление с остатком:
a - b * floor(a/b)

а вот C++ использует:
a - b * trunc(a/b)

Новички, которые привыкли ко всяким калькуляторам и СКА (Mathematica, Maple, Maxima и т.д.), в которых деление с остатком реализовано на основе floored definition, могут не понять работу % в С++, т.к. в этом языке данная функция реализована на базе truncated definition.

Т.е. по сути в С++ % это не mod, а remainder.

Добавлено через 3 минуты
Twidt88, такой велосипед можно написать:

C++
1
2
3
4
int modulo(int a, int b)
{
    return a >= 0 ? a % b : (b - abs(a % b)) % b;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2023, 19:24
Помогаю со студенческими работами здесь

Определить количество членов последовательности удовлетворяющих заданному условию
Даны натуральные числа n ,А 1,А 2, ..., Аn. Определить коли*- чество членов Аn последовательности A 1 ..., Аn удовлетворяющих условию...

Определить количество членов последовательности удовлетворяющих заданному условию
Определить количество членов ak последовательности a1, …, an, удовлетворяющих условию 2k &lt; ak &lt; k!

Найти количество чисел удовлетворяющих условиям
Рассматривается множество целых чисел, принадлежащих числовому отрезку , которые удовлетворяют следующим условиям: − кратны 2, но не...

Найти количество чисел удовлетворяющих указанным условиям
1)Рассматривается множество целых чисел принадлежащих числовому отрезку , которые удовлетворяют следующим условиям: а) число в...

Разбить шары на минимальное количество наборов удовлетворяющих заданным условиям
Приветствую. Есть задача: На столе стоят n коробок с разноцветными шарами. Цвета пронумерованы от 1 до n. В i-й коробке лежит ai шаров...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru