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

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

Войти
Регистрация
Восстановить пароль
 
Fresh128
Сообщений: n/a
#1

Написать функцию SUM (int M, int N) / С++ для начинающих - C++

06.03.2014, 18:49. Просмотров 462. Ответов 8
Метки нет (Все метки)

Написать функцию SUM (int M, int N), которая вычисляет и возвращает сумму всех чисел кратных 3 и 9 в пределах от M и N включительно . Использовать оператор цикла с параметром.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2014, 18:49     Написать функцию SUM (int M, int N) / С++ для начинающих
Посмотрите здесь:

C++ Написать функцию, которая транспонирует заданный в качестве параметра массива типа int
C++ для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1);
C++ Программа для начинающих - работа с переменными типа int и вывод строки
C++ Опишите функцию int vms(int Vkmh), которая переводит значение Vkmh из км/ч в м/с
Описать функцию int vms(int Vkmh), которая переводит значение Vkmh из км/ч в м/с C++
C++ Преобразовать int в const int для установки размера массива
Хочу написать функцию pow(), ошибка: (5,27):Too few parameters in call to 'step(float,int)' C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
06.03.2014, 18:58     Написать функцию SUM (int M, int N) / С++ для начинающих #2
Fresh128, если кратны 9 то и кратны 3, может всё-таки или?
C++
1
2
3
4
5
6
7
8
int SUM(int M, int N)
{
    int sum = 0;
    for(; M <= N; M++)
        if(!(M % 3) || !(M % 9))
            sum += M;
    return sum;
}
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.03.2014, 00:20     Написать функцию SUM (int M, int N) / С++ для начинающих #3
Цитата Сообщение от GuGo1991 Посмотреть сообщение
for(; M <= N; M++)
В идеале так не пишут. Тут нужна как минимум проверка еще этого диапозона.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
07.03.2014, 16:05     Написать функцию SUM (int M, int N) / С++ для начинающих #4
go, M <= N проверяется же. Можно было бы и так:
C++
1
for(int i = M; i <= N; i++)
Но по сути же одно и то же
ValeryS
Модератор
6508 / 4974 / 459
Регистрация: 14.02.2011
Сообщений: 16,476
07.03.2014, 16:16     Написать функцию SUM (int M, int N) / С++ для начинающих #5
Цитата Сообщение от GuGo1991 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
int SUM(int M, int N)
{
 int sum = 0;
   for(; M <= N; M++)
     if(!(M % 3) || !(M % 9))
     sum += M;
return sum;
}
слишком много пустых проходов
C++
1
if(!(M % 3) || !(M % 9))
вторая проверка бессмысленна если кратна 3 то и кратна 9

вот так будет побыстрее
C++
1
2
3
4
5
6
7
8
9
10
int SUM(int M,int N)
{
int sum=0;
while(M%3)// догоняем до кратного 3
  M++;
for(;M<=N;M+=3)
  sum+=M;
 
return sum;
}
если кратна трем но не кратна девяти( что то мне подсказывает что так и должно звучать)
C++
1
2
3
4
5
6
7
8
9
10
11
int SUM(int M,int N)
{
int sum=0;
while(M%3)// догоняем до кратного 3
  M++;
for(;M<=N;M+=3)
  if(M%9)
     sum+=M;
 
return sum;
}
Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
В идеале так не пишут. Тут нужна как минимум проверка еще этого диапозона.
в смысле?
какого диапазона?
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
07.03.2014, 16:51     Написать функцию SUM (int M, int N) / С++ для начинающих #6
Цитата Сообщение от ValeryS Посмотреть сообщение
вторая проверка бессмысленна если кратна 3 то и кратна 9
Как раз наоборот, если кратно 9 то и кратно 3. В прочем, я поэтому и переспросил Fresh128,
как-то глупо звучит условие задания, так как только кратные 3 и 9 будут числа кратные 9

Добавлено через 17 минут
Цитата Сообщение от ValeryS Посмотреть сообщение
слишком много пустых проходов
Согласен, сразу не подумал )
ValeryS
Модератор
6508 / 4974 / 459
Регистрация: 14.02.2011
Сообщений: 16,476
07.03.2014, 16:57     Написать функцию SUM (int M, int N) / С++ для начинающих #7
Цитата Сообщение от GuGo1991 Посмотреть сообщение
Как раз наоборот, если кратно 9 то и кратно 3.
ну это с точки зрения математики, а с точки зрения програмирования
C++
1
if(!(M % 3) || !(M % 9))
!(M % 3) истина
смысла проверять !(M % 9) уже нету

Добавлено через 2 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
смысла проверять !(M % 9) уже нету
а самое смешное что и не будет проверятся
при ИЛИ если первое условие истина то второе просто не проверяется
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
07.03.2014, 18:00     Написать функцию SUM (int M, int N) / С++ для начинающих #8
ValeryS, да, да, сглупил на ровном месте
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2014, 18:22     Написать функцию SUM (int M, int N) / С++ для начинающих
Еще ссылки по теме:

C++ Дано натуральное число N. Напишите функцию int NumberOfZeroes(int n) (C/C++/Java)
C++ Написать функцию int bitcount(unsigned x), возвращающую число единиц в двоичном представлении x
C++ Написать функцию, которая принимает указатель на небольшой 2х мерный массив int значениями
C++ Написать функцию с переменным числом параметров, находящую минимальное из чисел типа int
Написать функции для преобразования IP адреса из dot-decimal нотации в int и из int в dot-decimal нотацию C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6508 / 4974 / 459
Регистрация: 14.02.2011
Сообщений: 16,476
07.03.2014, 18:22     Написать функцию SUM (int M, int N) / С++ для начинающих #9
GuGo1991,
Yandex
Объявления
07.03.2014, 18:22     Написать функцию SUM (int M, int N) / С++ для начинающих
Ответ Создать тему
Опции темы

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