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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Kofa
1 / 1 / 0
Регистрация: 01.10.2013
Сообщений: 9
#1

Возведение в степень через цикл - C++

01.10.2013, 16:33. Просмотров 2381. Ответов 13
Метки нет (Все метки)

Помогите пожалуйста, не очень понимаю как посчитать это выражение R=a/(a+b)^b так, чтобы степень считалась через for, while, do while, и нужно возводить в степень именно через цикл
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2013, 16:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Возведение в степень через цикл (C++):

Возведение числа в степень через for - C++
Нужна программа для возведения числа в степень через for

Не работает возведение в степень через pow - C++
почему не работает?? не пойму #include <iostream> using namespace std; #include <cmath> int power(int, int); int...

Реализовать квадратный корень через возведение в степень - C++
Попытка реализовать квадратный корень через возведение в степень, попробовав встроенный pow(16, 1/2), всё считает верно, однако как его...

Возведение в степень - C++
Почему, когда я пытаюсь возвести в квадрат x с типом int, то получается 24, а когда с типом double, то все хорошо и получается 25? ...

Возведение степень - C++
int n=2; float i; i=pow(((n-1)/(n+1)), n*(n-1)); Выдает ошибку Domain Error. В чем дело и есть ли альтернатива pow() ?

Возведение в степень - C++
Дано число n и его нужно возвести в степень s. Можно ли это как-то сделать не используя циклы. Заранее спасибо...

13
TyLinka
33 / 33 / 11
Регистрация: 02.02.2012
Сообщений: 179
01.10.2013, 16:38 #2
b - целое

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
int main()
{
    double R, a, b, st = 1;
    
    cin >> a >> b;
 
    for (int i = 1; i < b; i++)
        st *= (a + b);
 
    R = a / st;
 
    cout << R << endl;
 
    return 0;
}
1
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
01.10.2013, 16:39 #3
Сам новичок, если что поправьте, вполне возможно что ошибся)
Как-то так:
C++ (Qt)
1
2
3
4
5
int R = a/(a+b);
for (i=1; i<b; i++)
 {
    R * R;
 }
1
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 489
Записей в блоге: 1
01.10.2013, 16:42 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
void main()
{
 int n;
double a, b;
cout<<"Vvedite a: ";
cin>>a;
cout<<"Vvedite b: ";
cin>>b;
 cout<<"Vvedite stepen: ";
 cin>>n;
double mn=1/(a+b);
double R=a;
 for(int i=1;i<=n;i++)
{
    R*=mn;
}
cout<<"result="<<R;
}
Это через for. В while нужно будет переменную, считающую кол-во итераций увеличивать в теле цикла.
1
TyLinka
33 / 33 / 11
Регистрация: 02.02.2012
Сообщений: 179
01.10.2013, 16:57 #5
Цитата Сообщение от Super GT Посмотреть сообщение
Сам новичок, если что поправьте, вполне возможно что ошибся)
Как-то так:
C++ (Qt)
1
2
3
4
5
int R = a/(a+b);
for (i=1; i<b; i++)
 {
    R * R;
 }
Попробуйте это скомпилировать, увидите сами
0
Kofa
1 / 1 / 0
Регистрация: 01.10.2013
Сообщений: 9
01.10.2013, 16:59  [ТС] #6
А что делать если после введения переменных вылетает из проги?
0
Catstail
Модератор
23455 / 11582 / 1886
Регистрация: 12.02.2012
Сообщений: 18,908
01.10.2013, 17:45 #7
А можно и без цикла:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
 
double myPow(double x, int n)
{
    if (n == 0)
        return 1.0;
    else
        return x*myPow(x,n-1);
}
 
int main(int argc, char* argv[])
{
 
    int n;
    double x;
    cout << "x=";
    cin >> x;
    cout << "n=";
    cin >> n;
    cout << myPow(x,n) << endl;
    return 0;
}
0
TyLinka
33 / 33 / 11
Регистрация: 02.02.2012
Сообщений: 179
01.10.2013, 17:54 #8
Цитата Сообщение от Kofa Посмотреть сообщение
А что делать если после введения переменных вылетает из проги?
вставьте перед return 0
C++
1
system("pause");
0
Kofa
1 / 1 / 0
Регистрация: 01.10.2013
Сообщений: 9
01.10.2013, 19:13  [ТС] #9
это задание только часть программы, но эта часть не получается, вот как я записал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
case'4':
            { 
                 double R;
                 int a;
                 int b;
                 int st = 1;
                 cout << "Enter a"<<endl;    
                 cin >> a;
                 cout << "Enter b"<<endl;
                 cin >> b;
    for (int i = 1; i < b; i++)
    {st *= (a + b);
 
    R = a / st;
     
    cout << "R=" <<R<< endl;
   system("pause");
    return 0;
    }
}
При вводе а=2...b=2 пишет что R=0
что не так??(
0
TyLinka
33 / 33 / 11
Регистрация: 02.02.2012
Сообщений: 179
01.10.2013, 19:35 #10
Сделайте "а" дробным типом
0
Kofa
1 / 1 / 0
Регистрация: 01.10.2013
Сообщений: 9
01.10.2013, 20:01  [ТС] #11
а теперь пишет ответ 0,5 но если считать самому то получается совсем по-другому
0
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 489
Записей в блоге: 1
02.10.2013, 10:07 #12
Kofa, ну написали же Вам готовый код уже несколько человек. Почему не взять его.
Проверьте внимательно объявление типов: "a" должно быть double, "b" должно быть int, "R" должно быть double
0
Kofa
1 / 1 / 0
Регистрация: 01.10.2013
Сообщений: 9
02.10.2013, 18:08  [ТС] #13
потому что я хочу понять,Ф а не просто скопировать, да и у меня почти тоже самое
0
TyLinka
33 / 33 / 11
Регистрация: 02.02.2012
Сообщений: 179
03.10.2013, 04:24 #14
Цитата Сообщение от Kofa Посмотреть сообщение
это задание только часть программы, но эта часть не получается, вот как я записал
case'4':
{
double R;
int a;
int b;
int st = 1;
cout << "Enter a"<<endl;
cin >> a;
cout << "Enter b"<<endl;
cin >> b;
for (int i = 1; i < b; i++)
{st *= (a + b);

R = a / st;

cout << "R=" <<R<< endl;
system("pause");
return 0;
}
}
При вводе а=2...b=2 пишет что R=0
что не так??(
У вас ошибка в расстановке квадратных скобок. Надо так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
case'4':
double R;
double a;
int b;
int st = 1;
cout << "Enter a"<<endl; 
cin >> a;
cout << "Enter b"<<endl;
cin >> b;
for (int i = 1; i < b; i++)
{st *= (a + b);
}
R = a / st;
 
cout << "R=" <<R<< endl;
 
break;
system ("pause") пишете в конце программы
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2013, 04:24
Привет! Вот еще темы с ответами:

Возведение a в степень b - C++
Пользователь вводит числа а и b, программа считает &quot;а&quot; в степени &quot;b&quot;. Помогите написать код

Возведение в степень - C++
Вот есть программа, работает только, для положительной степени. Помогите разобрать что не так? pow не предлагать! #include &quot;stdafx.h&quot; ...

возведение в степень - C++
помогите плиз! в файле есть задачка. нужно рекурсивно возвести в степень. Код: #include &lt;iostream&gt; float stepen(float a, int n) { ...

Возведение в степень - C++
Вывести на экран таблицу степеней &quot;к&quot;, где те изменяются от 1 до 10,к-вещественое число.оперцию возведения вещественого числа в степень...


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

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

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