Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 12.12.2018, 23:54   #1
Blacit
 
Регистрация: 09.12.2018
Сообщений: 8
По умолчанию Вычисление кубического корня.

Здравствуйте. Моя программа может вычислять только квадратный. А нужно как-то модернизировать до кубического. Использовался Вавилонский метод, его и нужно как-то сделать, чтобы кубический корень мог вычислять.
Нельзя использовать if, do и подобное.
Если кто-то поможет/подскажет, то буду благодарен.

Код:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
// Локализация
    setlocale( LC_ALL, "Russian");
// Обязательно должен быть float, для double слишком большой разброс чисел и нужно ещё больше раз формулу писать
float num;
// Присваиваем число
cout << "Введите число, чтобы найти квардратный корень: ";
cin >> num;
// Проверка введённого числа
cout << "Ваше первоначальное число: " << num << endl;
// Формула
float result = num / 2.0f;
 
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) /2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
result = (result + num/result) / 2.0f;
// Округление числа
cout.precision(2);
// Вывод результата
cout << "Ваш конечный результат: " << result << endl;
}
Blacit вне форума Ответить с цитированием
Старый 13.12.2018, 01:34   #2
Blacit
 
Регистрация: 09.12.2018
Сообщений: 8
По умолчанию

Готовый ответ:

Код:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
// Локализация
    setlocale( LC_ALL, "Russian");
// Обязательно должен быть float, для double слишком большой разброс чисел и нужно ещё больше раз формулу писать
double num;
// Присваиваем число
cout << "Введите число, чтобы найти кубический корень: ";
cin >> num;
// Проверка введённого числа
cout << "Ваше первоначальное число: " << num << endl;
// Формула
double result = num / 3.0;
 
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;
result = (2. * result + num/ (result * result)) / 3.0;

// Округление числа
cout.precision(4);
// Вывод результата
cout << "Ваш конечный результат: " << result << endl;
}
Blacit вне форума Ответить с цитированием
Старый 13.12.2018, 09:42   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Т.е. про циклы вы не в курсе...
p51x вне форума Ответить с цитированием
Старый 13.12.2018, 09:49   #4
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,508
По умолчанию

Ааа... Как это развидеть?
Изображения
Тип файла: jpg mikki.jpg (15.1 Кб, 132 просмотров)
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 13.12.2018, 09:53   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

Цитата:
Нельзя использовать if, do и подобное.
А чего это оператор присваивания можно? Непорядок )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.12.2018, 09:58   #6
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от Blacit Посмотреть сообщение
Нельзя использовать if, do и подобное.
Рекурсию используйте.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 13.12.2018, 10:07   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

if же низзя, а потребуется даже с рекурсией
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.12.2018, 10:11   #8
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
if же низзя, а потребуется даже с рекурсией
Чтото ни разу в жизни ни при каких преподах такой постановки не встречал. Может тут ошибка где то?? Как можно запретить базовый элемент структуры.
И какой навык должно развивать данное ограничение.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 13.12.2018, 12:15   #9
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Blacit Посмотреть сообщение
Здравствуйте. Моя программа может вычислять только квадратный. А нужно как-то модернизировать до кубического. Использовался Вавилонский метод, его и нужно как-то сделать, чтобы кубический корень мог вычислять.
сначала с квадратом разберись.
твой вавилон зафейлил квадратный корень числа 1048576.

Цитата:
Сообщение от Blacit Посмотреть сообщение
Нельзя использовать if, do и подобное.
if можно реализовать через арифметику.
(можно нагуглить)

do можно эмулировать через массивы и конструкторы.

пример:

Код:
#include <iostream>
struct some
{
    some() { std::cout <<"тут могла бы быть ваша реклама\n"; }
};

int main()
{
    some arr[5];  //<--- запустит 5 раз конструктор. 
        // соответственно, 5 раз отработает вывод в консоль.
}
по такому принципу можно протолкнуть любые свои вычисления,
не только консольный вывод.
_Bers вне форума Ответить с цитированием
Старый 13.12.2018, 12:55   #10
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
по такому принципу можно протолкнуть любые свои вычисления,
не только консольный вывод.
Это какое то извращение.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Арифметическое вычисление квадратного корня manowar111 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 01.12.2012 13:56
Вычисление квадратного корня вручную 6AZblJlb Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 16.11.2011 04:02
Вычисление квадратного корня Wera Visual C++ 7 09.07.2010 19:23
Вычисление квадратного корня в Delphi TaYgA Помощь студентам 17 08.11.2009 19:16
Pascal, метод Ньютона, вычисление корня ф-ии. Qousio Помощь студентам 2 02.05.2009 19:47


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS