Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/98: Рейтинг темы: голосов - 98, средняя оценка - 4.96
14 / 13 / 10
Регистрация: 22.03.2010
Сообщений: 695
1

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

24.09.2011, 18:59. Показов 19879. Ответов 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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2011, 18:59
Ответы с готовыми решениями:

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

Извлечение корня
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { double q; q =...

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

Извлечение кубического корня
кубический корень из под x на C++: y = pow(x, 1/3) если задать x = 0.2, то на выходе y = 1. Хотя...

10
Higher
1948 / 1214 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
24.09.2011, 18:59 2
Цитата Сообщение от parkito Посмотреть сообщение
Но из отрицательных чисел эта программа не извлекает коня.
Так корень из них нельзя извлечь, разве нет?
А коня тем более =)
0
Каратель
Эксперт С++
6601 / 4020 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
24.09.2011, 19:03 3
parkito, возьми а помодулю, а потом проверку, если а < 0 то результат домножай на -1 иначе так и оставляем результат
Цитата Сообщение от diagon Посмотреть сообщение
Так корень из них нельзя извлечь, разве нет?
нет)
1
1 / 1 / 0
Регистрация: 23.11.2008
Сообщений: 25
24.09.2011, 19:05 4
Цитата Сообщение от Jupiter Посмотреть сообщение
parkito, возьми а помодулю, а потом проверку, если а < 0 то результат домножай на -1 иначе так и оставляем результат
Цитата Сообщение от diagon Посмотреть сообщение
Так корень из них нельзя извлечь, разве нет?
А коня тем более =)
нет)
Можно, только это будут уже комплексные числа. Правда автор программы наврядли их имел в виду)
0
14 / 13 / 10
Регистрация: 22.03.2010
Сообщений: 695
24.09.2011, 19:06  [ТС] 5
Цитата Сообщение от diagon Посмотреть сообщение
Так корень из них нельзя извлечь, разве нет?
А коня тем более =)

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

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

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

Не по теме:

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

0
14 / 13 / 10
Регистрация: 22.03.2010
Сообщений: 695
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
1561 / 1039 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
24.09.2011, 21:53 9
C++
1
2
3
float a,b;
int c,t=0;
c=b;
Лихо) А из -2 извлечется корень 0.5 ? - походу на проверке слетит.
0
14 / 13 / 10
Регистрация: 22.03.2010
Сообщений: 695
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
1561 / 1039 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
24.09.2011, 22:29 11
ну опять ошибка) а вродь 4 должно быть
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2011, 22:29

Извлечение кубического корня
Подскажите, как можно извлечь кубический корень? Извлечение квадратного корня это без проблем:...

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

Калькулятор: извлечение корня из числа
Ничего более элементарного не придумал, как сделать калькулятор. Но есть проблема, я хочу сделать...

Извлечение квадратного корня из комплексного числа
Всем доброго времени суток. такая проблема, не могу посчитать квадратный корень из комплексного...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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