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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mishaka
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 32
#1

Найти сумму всех чисел от а до b кратных 13 и 5 - C++

25.09.2012, 20:33. Просмотров 971. Ответов 12
Метки нет (Все метки)

Вот что я пока что написал... Как сложить значения не знаю... выходит бурда полная...
C++
1
2
3
4
5
6
7
8
9
10
{   unsigned long a,b,i;
    cin >> a;
    cin >> b;
    for (i=a;i<b;i++)
    {
        if (i%13==0) 
            if (i%5==0)
    cout <<i;
    }
}
в общем прога выводит не сумму, а лишь числа кратные 5 и 13...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2012, 20:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти сумму всех чисел от а до b кратных 13 и 5 (C++):

Найти сумму всех чисел из промежутка от А до В, кратных 13 и 5 - C++
Здравствуйте! Помогите пожалуйста с кодом. Спасибо Найти сумму всех чисел из промежутка от А до В, кратных 13 и 5 (число А и В вводится с...

Найти сумму всех двузначных чисел,кратных 5 (цикл while) - C++
корректна ли постановка задачи? ведь в условии не указано,что надо найти именно натуральных чисел... и как это отразить в коде? ...

Найти сумму всех чисел на отрезке [A,B] кратных 7. C использованием 3-х циклов - C++
Найти сумму всех чисел на отрезке кратных 7. C использованием 3-х циклов. C использованием 3-х циклов(Обязательно) while, for, do while

Цикл с параметром: найти сумму всех n-значных чисел, кратных k - C++
Помогите составить программу. Условие: Найти сумму всех n-значных чисел, кратных k (1 &lt; n &lt; 4). Заранее благодарен!

В заданной последовательности найти сумму всех целых чисел кратных 5 (для решения задачи использовать while) - C++
Введена последовательность n, найти сумму всех целых чисел этой последовательности кратных 5

Найти сумму целых чисел от 1 до 20 за исключением чисел, кратных 3, но не кратных 5 - C++
Написать программу, которая считает сумму целых чисел от 1 до 20 за исключением чисел, кратных 3, но не кратных 5. Через while или цыклы

12
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
25.09.2012, 20:35 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
   unsigned long a,b,i, sum = 0;
   cin >> a;
   cin >> b;
   for (i=a;i<b;i++)
   {
      if (i%13==0) 
      {
         sum += i;
         cout << i;
      }
      else if (i%5==0)
      {
         sum += i;
         cout <<i;
      }
   }
   cout << sum;
 }
1
Mishaka
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 32
25.09.2012, 21:28  [ТС] #3
Цитата Сообщение от I.M. Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
   unsigned long a,b,i, sum = 0;
   cin >> a;
   cin >> b;
   for (i=a;i<b;i++)
   {
      if (i%13==0) 
      {
         sum += i;
         cout << i;
      }
      else if (i%5==0)
      {
         sum += i;
         cout <<i;
      }
   }
   cout << sum;
 }
спасибо, но программа выдает полную ерунду...

Добавлено через 43 минуты
товарищи может есть еще какие нибудь соображения? Это моя вторая программа, так что самостоятельно не могу пока сообразить что к чему к сожалению...
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.09.2012, 21:35 #4
Mishaka, Для Вас I.M. написал программу вычисляющую сумму всех чисел от а до b кратных 13 или 5. Если нужно: найти сумму всех чисел от а (включительно) до b (включительно) кратных 13 и одновременно кратных 5, то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
{
   unsigned long a,b,i, sum = 0;
   cin >> a;
   cin >> b;
   for (i=a;i<=b;i++)
   {
      if (i%13==0 && i%5==0)  
         sum += i;
   
   }
   cout << sum;
 }
1
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.09.2012, 21:38 #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
long Sum(long a, long b)
{
   long i, n;
   for (i = a; i <= b && i % 65; i++)
      ;
   n = (b - i) / 65 + 1;
   return i * n + (n - 1) * n * 65 / 2;
}
 
int main()
{
   printf("%ld\n", Sum(65, 195));
   return 0;
}
1
Mishaka
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 32
25.09.2012, 21:40  [ТС] #6
Цитата Сообщение от I.M. Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
   unsigned long a,b,i, sum = 0;
   cin >> a;
   cin >> b;
   for (i=a;i<b;i++)
   {
      if (i%13==0) 
      {
         sum += i;
         cout << i;
      }
      else if (i%5==0)
      {
         sum += i;
         cout <<i;
      }
   }
   cout << sum;
 }
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Mishaka, Для Вас I.M. написал программу вычисляющую сумму всех чисел от а до b кратных 13 или 5. Если нужно: найти сумму всех чисел от а (включительно) до b (включительно) кратных 13 и одновременно кратных 5, то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
{
   unsigned long a,b,i, sum = 0;
   cin >> a;
   cin >> b;
   for (i=a;i<=b;i++)
   {
      if (i%13==0 && i%5==0)  
         sum += i;
   
   }
   cout << sum;
 }
это и требовалось=) спасибо, я примерно так все и делал, просто по неопытности не знал такого литерала +=
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.09.2012, 21:45 #7
Разные способы имеются решения данной простой задачи: посты 4 и 5. При этом так как 5 и 13 взаимно просты, то условия
if (i % 5 == 0 && i % 13 == 0)
и
if (i % 65 == 0)
эквивалентны
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.09.2012, 21:52 #8
Цитата Сообщение от Thinker Посмотреть сообщение
Разные способы имеются решения данной простой задачи: посты 4 и 5. При этом так как 5 и 13 взаимно просты, то условия
if (i % 5 == 0 && i % 13 == 0)
и
if (i % 65 == 0)
эквивалентны
я еще немного добавлю: если важна скорость вычисления, то из перечисленных вариантов решения - вариант Thinker самый быстрый (но есть быстрее).
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.09.2012, 21:55 #9
Цитата Сообщение от valeriikozlov Посмотреть сообщение
но есть быстрее

Не по теме:

интуиция подсказывает, что есть, но вот сообразить не могу с ходу, кроме того, что в #5...Хотя, от суммы от 0 до b вычитаем сумму от 0 до а плюс a (в завмсимомти от делимости на 65). Такой способ?

0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.09.2012, 22:03 #10
Цитата Сообщение от Thinker Посмотреть сообщение
интуиция подсказывает, что есть, но вот сообразить не могу с ходу, кроме того, что в #5...
в этотом варианте задачи мало будет ускорения (но при других данных может быть существенное):

Цитата Сообщение от Thinker Посмотреть сообщение
for (i = a; i <= b && i % 65; i++)
;
здесь нужное i Вы (я знаю это) можете найти не методом перебора, а арифметическими действиями )
1
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.09.2012, 22:05 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Придумал вот как
C++
1
2
3
4
5
6
7
long Sum(long a, long b)
{
   long na, nb;
   na = a / 65 + 1;
   nb = b / 65 + 1;
   return (nb - 1) * nb * 65 / 2 - (na - 1) * na * 65 / 2 + (a % 65 ? 0 : a);
}
Ну, деление на 2 само собой заменится сдвигами, это так, для наглядности
0
Mishaka
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 32
27.09.2012, 18:39  [ТС] #12
Цитата Сообщение от Thinker Посмотреть сообщение
Придумал вот как
C++
1
2
3
4
5
6
7
long Sum(long a, long b)
{
   long na, nb;
   na = a / 65 + 1;
   nb = b / 65 + 1;
   return (nb - 1) * nb * 65 / 2 - (na - 1) * na * 65 / 2 + (a % 65 ? 0 : a);
}
Ну, деление на 2 само собой заменится сдвигами, это так, для наглядности
Ух! Что-то серьезное=-0. Я только начинаю изучать этот язык, так что в принципе для меня главное-это хоть какая-нибудь работоспособность программы=) об оптимизации я могу пока только мечтать=)
0
Thinker
27.09.2012, 18:48     Найти сумму всех чисел от а до b кратных 13 и 5
  #13

Не по теме:

Mishaka, здесь алгоритм главное придумать, а потом уже его реализация.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2012, 18:48
Привет! Вот еще темы с ответами:

Подсчитать сумму всех чисел натурального ряда от 9 до 89 кратных 3. - C++
Подсчитать сумму всех чисел натурального ряда от 9 до 89 кратных 3.

Вычислить сумму всех трёхзначных чисел, кратных 13 (блок-схему и программу) - C++
Составить блок-схему алгоритма и программу вычисления суммы всех трёхзначных чисел , кратные 13.

Найти сумму всех элементов массива, кратных 4 - C++
Найти сумму всех элементов массива, кратных 4. При составлении программы для обработки массивов, имя массива считать указателем на его...

Найти сумму всех элементов массива, кратных 4 - C++
Пожалуйста, решите задачку, заранее благодарю! Найти сумму всех элементов массива, кратных 4. При составлении программы для...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.09.2012, 18:48
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru