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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 86, средняя оценка - 4.73
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 692
#1

Извлечение корня n-степени - C++

24.09.2011, 18:59. Просмотров 11414. Ответов 10
Метки нет (Все метки)

Написал программу для вычисления корня n-cтепени

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<math.h>
using namespace std;
 
int main()
{setlocale(LC_ALL,"Rus");
float a,b;
cout<<"Введите число --> ";
cin>>a;
cout<<"Введите  степень извлечения --> ";
cin>>b;
b=pow(a,1/b);
cout<<"Результат = "<<b;
cin.get();
cin.get();
return 0;
}
Но из отрицательных чисел эта программа не извлекает корня. Как это исправить ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2011, 18:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Извлечение корня n-степени (C++):

Извлечение корня н-ной степени из числа - C++
Здравствуйте!!! Тут задачка такая: нужно извлечь корень н-ной степени из числа методом деления отрезка пополам. Я реализовал такой код: ...

Извлечение корня - C++
Не подскажите функцию в С++ для извлечения корня

Извлечение кубического корня - C++
Подскажите, как можно извлечь кубический корень? Извлечение квадратного корня это без проблем: #include &lt;iostream&gt; #include &lt;cmath&gt; ...

Калькулятор: извлечение корня из числа - C++
Ничего более элементарного не придумал, как сделать калькулятор. Но есть проблема, я хочу сделать функцию добывания корня из числа. Вот код...

Извлечение корня, длинная арифметика - C++
По заданному натуральному числу А требуется найти наибольшее число В такое, что B^2 &lt;= A. вот набросал, но прога работает медленно....

Вычисление корня n-ой степени - C++
Сам обучаюсь C#, но дали решить С++ не понимаю помогите пожалуйста!!!

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
24.09.2011, 18:59 #2
Цитата Сообщение от parkito Посмотреть сообщение
Но из отрицательных чисел эта программа не извлекает коня.
Так корень из них нельзя извлечь, разве нет?
А коня тем более =)
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.09.2011, 19:03 #3
parkito, возьми а помодулю, а потом проверку, если а < 0 то результат домножай на -1 иначе так и оставляем результат
Цитата Сообщение от diagon Посмотреть сообщение
Так корень из них нельзя извлечь, разве нет?
нет)
1
1ogos
1 / 1 / 0
Регистрация: 23.11.2008
Сообщений: 25
24.09.2011, 19:05 #4
Цитата Сообщение от Jupiter Посмотреть сообщение
parkito, возьми а помодулю, а потом проверку, если а < 0 то результат домножай на -1 иначе так и оставляем результат
Цитата Сообщение от diagon Посмотреть сообщение
Так корень из них нельзя извлечь, разве нет?
А коня тем более =)
нет)
Можно, только это будут уже комплексные числа. Правда автор программы наврядли их имел в виду)
0
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 692
24.09.2011, 19:06  [ТС] #5
Цитата Сообщение от diagon Посмотреть сообщение
Так корень из них нельзя извлечь, разве нет?
А коня тем более =)

Как это нельзя?
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
24.09.2011, 19:07 #6
Цитата Сообщение от Jupiter Посмотреть сообщение
parkito, возьми а помодулю, а потом проверку, если а < 0 то результат домножай на -1 иначе так и оставляем результат

нет)
А, ну да, есть же нечетные степени.
Тогда да, так можно.
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.09.2011, 19:07 #7
Цитата Сообщение от diagon Посмотреть сообщение
Так корень из них нельзя извлечь, разве нет?
Смотря какой корень. Арифметический чётной степени - нельзя. Иначе - можно.

Добавлено через 24 секунды

Не по теме:

Эхх, опоздун я, как обычно))

0
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 692
24.09.2011, 19:45  [ТС] #8
Почитав ваши рекомендации набыдлокодил:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<iostream>
#include<math.h>
#include<stdlib.h>
using namespace std;
 
int main()
{setlocale(LC_ALL,"Rus");
float a,b;
int c,t=0;
cout<<"Введите число --> ";
cin>>a;
cout<<"Введите  степень извлечения --> ";
cin>>b;
c=b;
if(a<0&&c%2!=0)
{a*=-1;t++;}
if(a<0&&c%2==0)
    {cout<<"Ошибка ";
cin.get();
cin.get();
exit(0);}
b=pow(a,1/b);
if (t!=0)
    b*=-1;
cout<<"Результат = "<<b;
cin.get();
cin.get();
return 0;
}
Спасибо !
0
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,985
24.09.2011, 21:53 #9
C++
1
2
3
float a,b;
int c,t=0;
c=b;
Лихо) А из -2 извлечется корень 0.5 ? - походу на проверке слетит.
0
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 692
24.09.2011, 22:12  [ТС] #10
Цитата Сообщение от KuKu Посмотреть сообщение
C++
1
2
3
float a,b;
int c,t=0;
c=b;
Лихо) А из -2 извлечется корень 0.5 ? - походу на проверке слетит.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<iostream>
#include<math.h>
#include<stdlib.h>
using namespace std;
 
int main()
{setlocale(LC_ALL,"Rus");
float a,b;
int c,t=0;
cout<<"Введите число --> ";
cin>>a;
cout<<"Введите  степень извлечения --> ";
cin>>b;
c=b;
if(a<0&&c%2!=0)
{a*=-1;t++;}
if(a<0&&c%2==0||b-c>0)
        {cout<<"Ошибка ";
cin.get();
cin.get();
exit(0);}
b=pow(a,1/b);
if (t!=0)
        b*=-1;
cout<<"Результат = "<<b;
cin.get();
cin.get();
return 0;
}
0
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,985
24.09.2011, 22:29 #11
ну опять ошибка) а вродь 4 должно быть
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2011, 22:29
Привет! Вот еще темы с ответами:

Функция корня степени - C++
Написать и протестировать функцию, которая по натуральному k и вещественным x &gt; 0, 0 &lt; ε ≤ 10-6 вычисляет значение , используя следующую...

Извлечение корня из отрицательного числа и сравнение его с вещественным числом - C++
Здравствуйте уважаемые формучане. Дано выражение: min(a*x,y,max(sqrt(x),sin(y))) при x ≤ 0 и y &gt; 2. Я попробовал реализовать это так: ...

Вычисление корня заданной степени - C++
Всем привет. Как сделать корень по основанию? Например:

Рекурсия: вычисление корня n-ой степени - C++
Вот условие А вот то, что я набросал... Прошу исправить... Зарание спасибо: #pragma argsused #include &lt;stdio.h&gt; #include &lt;conio.h&gt;...


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

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

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