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

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

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

C++ Возведение в степень. C++
C++ возведение в степень!
Возведение в степень C++
Возведение в степень! C++
Возведение в степень C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
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;
}
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;
 }
Algoritmer
 Аватар для Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 477
Записей в блоге: 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 нужно будет переменную, считающую кол-во итераций увеличивать в теле цикла.
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
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;
 }
Попробуйте это скомпилировать, увидите сами
Kofa
1 / 1 / 0
Регистрация: 01.10.2013
Сообщений: 9
01.10.2013, 16:59  [ТС]     Возведение в степень через цикл #6
А что делать если после введения переменных вылетает из проги?
Catstail
Модератор
 Аватар для Catstail
21451 / 10236 / 1667
Регистрация: 12.02.2012
Сообщений: 17,110
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;
}
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
01.10.2013, 17:54     Возведение в степень через цикл #8
Цитата Сообщение от Kofa Посмотреть сообщение
А что делать если после введения переменных вылетает из проги?
вставьте перед return 0
C++
1
system("pause");
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
что не так??(
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
01.10.2013, 19:35     Возведение в степень через цикл #10
Сделайте "а" дробным типом
Kofa
1 / 1 / 0
Регистрация: 01.10.2013
Сообщений: 9
01.10.2013, 20:01  [ТС]     Возведение в степень через цикл #11
а теперь пишет ответ 0,5 но если считать самому то получается совсем по-другому
Algoritmer
 Аватар для Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 477
Записей в блоге: 1
02.10.2013, 10:07     Возведение в степень через цикл #12
Kofa, ну написали же Вам готовый код уже несколько человек. Почему не взять его.
Проверьте внимательно объявление типов: "a" должно быть double, "b" должно быть int, "R" должно быть double
Kofa
1 / 1 / 0
Регистрация: 01.10.2013
Сообщений: 9
02.10.2013, 18:08  [ТС]     Возведение в степень через цикл #13
потому что я хочу понять,Ф а не просто скопировать, да и у меня почти тоже самое
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2013, 04:24     Возведение в степень через цикл
Еще ссылки по теме:

Возведение в степень C++
Возведение числа в степень через for C++

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

Или воспользуйтесь поиском по форуму:
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
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") пишете в конце программы
Yandex
Объявления
03.10.2013, 04:24     Возведение в степень через цикл
Ответ Создать тему
Опции темы

Текущее время: 10:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru