Форум программистов, компьютерный форум CyberForum.ru

Олимпиадная задача - сумма чисел меньших N, которые делятся на A или на B - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Олимпиадная задача - память Ватсона http://www.cyberforum.ru/cpp-beginners/thread843479.html
Условие Память Ватсона достигла критического состояния. Это означает, что все ячейки его памяти заполнились единицами. Рыбка узнала, что если всю память Ватсона считать одним большим шестнадцатеричным числом, то это число будет делиться на 7. Но не поверила и захотела проверить этот факт. Для этого Рыбка узнала у Ватсона, сколько ячеек в его памяти. Оказалось, что их очень много - таких больших...
C++ переделать программу из Pascal в С++ есть программа на паскале для поиска перевода слов в файлах. нужно переделать эту программу на c++. uses crt; var ru,en: text; r: byte; procedure FindEn; var s,ss,se: string; n: integer; begin http://www.cyberforum.ru/cpp-beginners/thread843467.html
как считать весь файл ? C++
char buff; ifstream fin("/Users/Vitaly/Desktop/laba2/laba2/list.txt",ios_base::in); fin>>buff,50; cout<<buff; fin.close(); Эта программа считутет первое слово , если я напишу fin.getline(buff,50), то программа считает первую строку в 50 символов , Вопрос : Как считать файл в котором n строк ?
C++ СЛАУ методом Жордана-Гаусса
Нужна программа для решения СЛАУ методом Жордана-Гаусса с выбором главного элемента.
C++ перегрузка операций http://www.cyberforum.ru/cpp-beginners/thread843444.html
Обычным методом задача решена, помогите пожалуйста сделать перегрузку операций Условие: Указанные в заданиях операции реализовать посредством перегрузки подходящих операций #include <iostream> #include <math.h> class Triangle { private: int angle;
C++ Вывод строки фиксированной длинны в cout (аля printf(%5.0d)! Добрый вечер! Сегодня встал перед выбором... как выводить через printf или cout. Через принтф код выдает ошибку: Необработанное исключение по адресу, ссылаясь на файл (msvcr110d.dll) ..Нарушение прав доступа Через cout все выводится, но хотелось бы, что бы для вывода выводилось определенное число пустых клеток, что бы получить таблицу: |1|name|name2|speed| а получаю так:... подробнее

Показать сообщение отдельно
A1exSun
C#
55 / 55 / 1
Регистрация: 09.03.2013
Сообщений: 214
20.04.2013, 20:55  [ТС]
Цитата Сообщение от aram_gyumri Посмотреть сообщение
а папробуйте решить ее циклами так
берем прогрессию где d=a считаем сумму элементов меньших n обозначим сумму черес s_a
тоже для d=b - s_b и d=a+b - s_ab
ответом будет s_a+s_b-s_ab
Напишите код пожалуйста, а то не совсем понятно.
3 цикла? Не выиграет же время.

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
примерно так сумма
чисел делящихся на A
C++
1
2
for(int i=A; i<n;i+=A)
 Summ+=i;
это сумма арифметической прогрессии
которая равна сумме первого и последнего элемента умноженное на количество элементов и деленное на два

значит нужно узнать последний член прогрессии
C++
1
int last=(n/A)*A;
и количество
C++
1
int m= (A+last)/A;
сумма равна
C++
1
Sum=((A+last)*m)/2;
Так это только для A, а нужно сумму элементов которые делятся A или B, к тому же без повторов.
Так как в примере - 6 учитывается лишь раз, а не 2 (делиться и на 2 и на 3).
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru