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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Олександr
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 10
#1

Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность - C++

01.03.2014, 21:27. Просмотров 1206. Ответов 20
Метки нет (Все метки)

Программа должна перемножать 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность(помогите написать хотя бы рекурсивную функцию я то я вообще не могу вьехать))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2014, 21:27     Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность
Посмотрите здесь:

Определить значение n^3, не используя операции умножения - C++
Определить значение {n}^{3}, не используя операции умножения. Известно что: {1}^{3}=1 {2}^{3}=3+5 {3}^{3}=7+9+11 ...

Используя do while перемножить вводимые числа - C++
Направьте в нужную сторону. Задача: пользователь вводит много чисел, которые последовательно умножаются, пока результат <=1000; ...

Написать программу умножения ряда нечётных натуральных чисел от 1 до 21, используя указатели - C++
Добрый день! Есть задача, умножить числа 1 * 3 * 5 * 7 * ...* 21, используя циклы int main() { long long x = 1, dob = 1; ...

Возвести число в 10 степень, используя только четыре операции умножения - C++
Подскажите что не так?При проверке на сайте пишет частичное решение. Задача: Напишите программу, которая возводит введенное число в...

Используя рекурсию вивести групу даних с их индексами не используя масив - C++
Вот мой код на с++ #include<iostream> #include<conio.h> using namespace std; void elementu(int); void main(void){ ...

Не используя операции умножения и деления, найти количество отрезков, расположенных на отрезке А - C++
Прошу еще раз, прочитайте правила форума: http://www.cyberforum.ru/announcement.php?a=3. В особенности пункт 4.3: Создавайте темы с...

Цикл: Используя только операции умножения и деления вычислить: A^n (A в степени n) , минимизировав число операций - C++
Дано натуральное число A ( Ввод числа производится в шеснадцатеричной системе ). Используя только операции умножения и деления вычислить:...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
7060 / 4201 / 949
Регистрация: 30.01.2014
Сообщений: 6,968
04.03.2014, 23:31     Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность #16
Олександr, скачал твой проект, запустил - работает все нормально.
Версия Visual Studio какая? Может попробовать ее переустановить?
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,741
05.03.2014, 00:03     Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность #17
Цитата Сообщение от zer0mail Посмотреть сообщение
Решения "в лоб" не дадут логарифмической сложности. Интересно, операции разрядного сдвига вправо/влево допустимы?
а если нет?
то можно использовать умножение на 2
вот в таком виде
C++
1
a+=a;
но вот деление не знаю как

а так можно поразрядно умножать (разряды двоичные)

примерно так
C++
1
2
3
4
5
6
7
8
9
10
int fncMul(int a, int b,)
{
 if(b==0)
  return 0;
 if(b&1)
  return a+fncMul(a+a,b/2); 
 else
  return fncMul(a+a,b/2);
 
}
Добавлено через 50 секунд
Цитата Сообщение от Олександr Посмотреть сообщение
НЕ КАТИТ(возникли ошибки сборки)
может покажешь какие?
UnsKneD
алкокодер
154 / 150 / 11
Регистрация: 27.12.2012
Сообщений: 548
05.03.2014, 04:48     Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность #18
Цитата Сообщение от Олександr Посмотреть сообщение
НЕ КАТИТ(возникли ошибки сборки)
студию не обновляли? другую студию поверх этой не ставили?
zer0mail
2330 / 1956 / 192
Регистрация: 03.07.2012
Сообщений: 7,013
Записей в блоге: 1
05.03.2014, 14:04     Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность #19
Цитата Сообщение от ValeryS Посмотреть сообщение
Сообщение от zer0mail
Решения "в лоб" не дадут логарифмической сложности. Интересно, операции разрядного сдвига вправо/влево допустимы?
а если нет?
то можно использовать умножение на 2
Если нет, то придется складывать и "складывать сложенное" При аккуратной работе можно обойтись и без деления. Но неясно, какой уровень подготовки предполагает это задание.
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,741
05.03.2014, 14:17     Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность #20
Цитата Сообщение от zer0mail Посмотреть сообщение
При аккуратной работе можно обойтись и без деления.
как?
вот с делением я показал как реализовать лог. зависимость
Цитата Сообщение от zer0mail Посмотреть сообщение
то придется складывать и "складывать сложенное"
не понял переведи
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2014, 18:32     Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность
Еще ссылки по теме:

найти индекс по по значению числа, используя рекурсию. - C++
Здравствуйте! Есть инициализированный и отсортированный массив определенного размера. Надо в этом массиве в функции int ReturnNumberArrey...

Используя рекурсию напечатать вводимые числа в обратном порядке - C++
1. Написать рекурсивную процедуру, которая считывает вводимые с клавиатуры числа до тех пор, пока не будет обнаружен нуль. Затем введенные...

Возведение в степень числа используя рекурсию и операцию сложения - C++
Здравствуйте! В общем, было у меня задание осуществить умножение числа на число с помощью рекурсии и только операции сложения, с этим...

Подсчет суммы всех чисел до заданного числа, используя рекурсию - C++
Напишите пример как подсчитать сумму всех чисел до (например 6) используя рекурсию !!

Используя рекурсию, найти все четные числа из заданного набора целых чисел - C++
Помогите пожалуйста решить следующую задачу :) Используя рекурсию, найти все четные числа из заданного набора целых чисел. Массив не...


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

Или воспользуйтесь поиском по форуму:
Олександr
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 10
12.03.2014, 18:32  [ТС]     Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность #21
Спасибо всем кто помогал. Я справился с проблемой, все пашет, тему можна закрывать.
Yandex
Объявления
12.03.2014, 18:32     Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность
Ответ Создать тему
Опции темы

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