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

Как понять int a(int x,int y, int z)? - C++

Восстановить пароль Регистрация
 
KRUZi
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 24
19.09.2013, 12:16     Как понять int a(int x,int y, int z)? #1
какое значение будет у переменной а?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
19.09.2013, 12:17     Как понять int a(int x,int y, int z)? #2
Это функция. int
KRUZi
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 24
19.09.2013, 12:20  [ТС]     Как понять int a(int x,int y, int z)? #3
Цитата Сообщение от Nekto Посмотреть сообщение
Это функция. int
ну вот к примеру есть такой код

C++
1
2
3
4
5
6
7
8
9
10
11
 int mod(int a,int p,int m)
  {
       if (p == 0) 
           return 1;
       int sqr = mod(a,p/2,m) % m;
      
       if (p & 1) 
           return ((a % m) * sqr) % m;
       else 
           return sqr;
  }
можешь объяснить, что произойдет с mod и какое значение примет параметр sqr ?
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
19.09.2013, 12:24     Как понять int a(int x,int y, int z)? #4
Цитата Сообщение от KRUZi Посмотреть сообщение
ну вот к примеру есть такой код

C++
1
2
3
4
5
6
7
8
9
10
11
 int mod(int a,int p,int m)
  {
       if (p == 0) 
           return 1;
       int sqr = mod(a,p/2,m) % m;
      
       if (p & 1) 
           return ((a % m) * sqr) % m;
       else 
           return sqr;
  }
можешь объяснить, что произойдет с mod и какое значение примет параметр sqr ?
Зависит от входящих параметров. Будет рекурсивный вызов, пока p != 0
KRUZi
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 24
19.09.2013, 12:29  [ТС]     Как понять int a(int x,int y, int z)? #5
Nekto, Извиняюсь, тупанул, входных значений нет, это ведь кусочек кода, но мне все таки не понятно, как будет вычисляться mod если у него в скобках 3 разных значения?
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
19.09.2013, 12:40     Как понять int a(int x,int y, int z)? #6
Цитата Сообщение от KRUZi Посмотреть сообщение
Nekto, Извиняюсь, тупанул, входных значений нет, это ведь кусочек кода, но мне все таки не понятно, как будет вычисляться mod если у него в скобках 3 разных значения?
В смысле как? Подставляешь в коде вместо параметров цифры и считаешь.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5534 / 2568 / 234
Регистрация: 01.11.2011
Сообщений: 6,342
Завершенные тесты: 1
19.09.2013, 12:48     Как понять int a(int x,int y, int z)? #7
KRUZi,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
int a(int x, int y, int z)
{
return x*y*z;
}
 
int main()
{
cout << a(2, 3, 6); // Выведет 36
cout << a(0, 9, 6); // Выведет 0
cout << a(1, 2, 3); // Выведет 6
 
return 0;
}
KRUZi
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 24
19.09.2013, 12:54  [ТС]     Как понять int a(int x,int y, int z)? #8
Цитата Сообщение от Nekto Посмотреть сообщение
В смысле как? Подставляешь в коде вместо параметров цифры и считаешь.
приведи пожалуйста пример)))) я не пойму, получается будет 3 разных значения? или они как то складываются?

Добавлено через 6 минут
SatanaXIII, спасибо, понял. еще можете подсказать, что за условие if (p & 1) ?
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
19.09.2013, 12:57     Как понять int a(int x,int y, int z)? #9
KRUZi, вот код твоей функции:
C++
1
2
3
4
5
6
7
8
9
10
11
int mod(int a,int p,int m)
  {
       if (p == 0) 
           return 1;
       int sqr = mod(a,p/2,m) % m;
      
       if (p & 1) 
           return ((a % m) * sqr) % m;
       else 
           return sqr;
  }
Вместо a, p и m подставляются целые числа. Далее эти переменные используются внутри функции. Считается результат и функция возвращает значение целого типа, которое потом используется в программе.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5534 / 2568 / 234
Регистрация: 01.11.2011
Сообщений: 6,342
Завершенные тесты: 1
19.09.2013, 12:58     Как понять int a(int x,int y, int z)? #10
Побитовое И.
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
19.09.2013, 13:33     Как понять int a(int x,int y, int z)? #11
C++
1
if (p & 1)
в данном случае это проверка на чётность. Если число нечётное, то результатом p & 1 будет 1, в противном случае - 0.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2013, 13:59     Как понять int a(int x,int y, int z)?
Еще ссылки по теме:

Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int C++
С++ ошибка error C4430: missing type specifier - int assumed. Note: C++ does not support default-int C++
C++ Int vs int fast - как проверить производительность?
C++ Правильное объявление переменной с точки зрения стиля [int *a vs int* a]
Не понимаю ошибку invalid conversion from 'int' to 'int* C++

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

Или воспользуйтесь поиском по форуму:
KRUZi
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 24
19.09.2013, 13:59  [ТС]     Как понять int a(int x,int y, int z)? #12
Цитата Сообщение от lipnev Посмотреть сообщение
C++
1
if (p & 1)
в данном случае это проверка на чётность. Если число нечётное, то результатом p & 1 будет 1, в противном случае - 0.
Спасибо за понятное объяснение.
Yandex
Объявления
19.09.2013, 13:59     Как понять int a(int x,int y, int z)?
Ответ Создать тему
Опции темы

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