Как найти степень числа в цикле

1 / 1 / 0

Регистрация: 01.10.2013

Сообщений: 9

1

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

01.10.2013, 16:33. Показов 41914. Ответов 13


Студворк — интернет-сервис помощи студентам

Помогите пожалуйста, не очень понимаю как посчитать это выражение R=a/(a+b)^b так, чтобы степень считалась через for, while, do while, и нужно возводить в степень именно через цикл



0



TyLinka

34 / 34 / 21

Регистрация: 02.02.2012

Сообщений: 181

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

6 / 6 / 1

Регистрация: 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

159 / 98 / 25

Регистрация: 07.03.2013

Сообщений: 512

Записей в блоге: 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

34 / 34 / 21

Регистрация: 02.02.2012

Сообщений: 181

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



1 / 1 / 0

Регистрация: 01.10.2013

Сообщений: 9

01.10.2013, 16:59

 [ТС]

6

А что делать если после введения переменных вылетает из проги?



0



Catstail

Модератор

Эксперт функциональных языков программированияЭксперт Python

35427 / 19452 / 4071

Регистрация: 12.02.2012

Сообщений: 32,486

Записей в блоге: 13

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

34 / 34 / 21

Регистрация: 02.02.2012

Сообщений: 181

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



34 / 34 / 21

Регистрация: 02.02.2012

Сообщений: 181

01.10.2013, 19:35

10

Сделайте “а” дробным типом



0



1 / 1 / 0

Регистрация: 01.10.2013

Сообщений: 9

01.10.2013, 20:01

 [ТС]

11

а теперь пишет ответ 0,5 но если считать самому то получается совсем по-другому



0



159 / 98 / 25

Регистрация: 07.03.2013

Сообщений: 512

Записей в блоге: 1

02.10.2013, 10:07

12

Kofa, ну написали же Вам готовый код уже несколько человек. Почему не взять его.
Проверьте внимательно объявление типов: “a” должно быть double, “b” должно быть int, “R” должно быть double



0



1 / 1 / 0

Регистрация: 01.10.2013

Сообщений: 9

02.10.2013, 18:08

 [ТС]

13

потому что я хочу понять,Ф а не просто скопировать, да и у меня почти тоже самое



0



TyLinka

34 / 34 / 21

Регистрация: 02.02.2012

Сообщений: 181

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



  1. Ты выполняешь цикл пока (counter3 == degree) при условии что после каждой итерации counter3 увеличивается, таким образом у тебя цикл будет выполнятся только при условии что счетчик равен степени и то один раз, то есть он будет срабатывать только если ты 2 возводишь в степень 2

  2. В начале цикла у тебя стоит следующее result3 = number3, то есть ты на каждой итерации цикла результату присваиваешь введенное число.

немного подкорректированный твой код

let number3 = +prompt('Введите число');
let degree = +prompt('Введите степень');
let result3 = number3;
if (degree == 0) {
    alert('Результат: 1');
} else if (degree == 1) {
    alert('Результат: ' + number3);
}
while (degree > 1) {
    // result3 = number3;
    result3 = result3 * number3;
    console.log(degree, result3);
    degree = degree - 1;
}
alert('Результат: ' + result3);

более аккуратный вариант

const handlerDegree = (number, degree) => {
    let result = 1;

    while (degree) {
        result = number * result;
        degree = degree - 1;
    }

    return result;
};

const result = handlerDegree(2, 3);
alert(`Результат: ${result}`);

Или через рекурсию

function handlerDegree(number, degree) {
    return degree ? number * handlerDegree(number, degree - 1) : 1;
}
alert(handlerDegree(5, 3));

p.s лучше использовать строгое сравнение === вместо ==

На занятии изучается алгоритм работы с циклом с предусловием While в Паскале, рассматривается пример возведения в степень

Содержание:

  • While в Паскале — цикл с предусловием
    • Вложенные циклы в Паскале
  • Произведение в Паскале
  • Программа возведения в степень числа в Паскале

Пример: Определить количество цифр в введенном целом числе, не превышающем 2000000.

Алгоритм: Отделяем и удаляем последовательно последнюю цифру, наращивая счетчик.

n счетчик
246 0
24 1
2 2
0 3

В чем сложность?: Заранее не определено и неизвестно, сколько цифр нужно убрать, т.е. сколько шагов необходимо сделать.
Как выполнить: Надо перестать отделять цифры, когда n = 0, т.е. надо выполнять пока n > 0

Блок-схема решения:

Блок-схема решения цикл while

Блок-схема решения

Решение примера на Паскале:
пример цикла while Паскаль
Цикл while в Паскале применяется для создания повторений с неизвестным заранее их числом. Повторения (итерации) будут осуществляться, пока истинно некоторое условие.

Блок-схема, соответствующая циклу while в Паскале:
блок-схема while в паскале

while условие do {Пока условие истинно выполняется оператор}
   оператор;
  • Здесь оператор, стоящий после служебного слова do, образует тело цикла и будет выполняться, пока значение "условия" равно true (истина).
  • Если операторов должно быть несколько, тогда необходимо применять составной оператор.
  • Условие пересчитывается каждый раз при входе в цикл.
  • Непосредственно условием цикла while может быть переменная или логическое выражение.
  • Операторы тела цикла while выполнятся только в том случае, если условие будет истинно, если условие ложно — они игнорируются, и программа продолжается с тех операторов, которые стоят уже после конструкции. Таким образом, это существенное отличие цикла с предусловием от цикла с постусловием.

Рассмотрим использование цикла while в Паскале на решенном примере:

Пример: Печатать «ноль» указанное количество раз

Показать решение:

Pascal PascalABC.NET
1
2
3
4
5
6
7
8
9
10
var i,n:integer;
begin
write ('количество знаков');
readln(n);
i:=1;
while i<=n do begin {составной оператор}
  write(0);
  i:=i+1
end;
end.
1
2
3
4
5
6
7
8
begin
var n:=readInteger('количество знаков');
var i:=1;
while i<=n do begin {составной оператор}
  write(0);
  i:=i+1
end;
end.

Задача 3. Ввести целое число и найти сумму его цифр.
Пример:

Введите целое число:
1234
Сумма цифр числа 1234 равна 10.

  
[Название файла: L3task3.pas]

  • Можно использовать сложные условия:
  • сложные условия в while

    Задача 4. Вычислять с использованием цикла while квадратные корни из чисел 900, 893, 886, 879 и т.д. до тех пор, пока это можно делать.

      
    [Название файла: L3task4.pas]

    Детальный разбор работы цикла While в Паскале рассмотрен в видеоуроке:

    Пример: найти сумму всех элементов последовательности:

    найти сумму всех элементов последовательности
    которые по модулю больше 0,001:

    Алгоритм:

    Блок-схема решения:

    Блок-схема решения

    Блок-схема решения

    Решение на Паскале:

    Решение на Паскале

    Решение на Паскале

    Задача 5: Вычислить сумму элементов следующей последовательности с точностью 0,001:
    Найти сумму элементов последовательности с точностью 0,001

    Результат: S = 1.157

      
    [Название файла: L3task5.pas]

    Вложенные циклы в Паскале

    Существует возможность использования вложенных циклов в Паскале, когда в теле одного цикла вместо оператора стоит другой цикл.

    Важно: Главным обстоятельством во вложенных циклах является использование разных переменных для счетчиков внутреннего и внешнего циклов

    Рассмотрим пример:

    Пример: Вывести таблицу умножения, используя вложенные циклы в паскале.

    Показать решение:

    Pascal PascalABC.NET
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    const n = 9; {размер таблицы}
    var i, j :integer;
    begin
       for i:=1 to n do {номера строк}
       begin
         for j:=1 to n do {номера столбцов}
           write(i*j:4);
         writeln; {переход на новую строку}
       end;
    end.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    const n = 9; {размер таблицы}
    begin
       for var i:=1 to n do {номера строк}
       begin
         for var j:=1 to n do {номера столбцов}
           write(i*j:4);
         writeln; {переход на новую строку}
       end;
    end.

    Произведение в Паскале

    Точно также, как существует сумматор для сложения, для умножения в паскале тоже существует специальная конструкция:

    Произведение вычисляется по рекуррентному выражению:

    P=P*Y,

    где P – промежуточные произведения

    Y — сомножители

    Рассмотрим пример вычисления факториала числа в Паскале с использованием цикла while.

    Пример цикла While в Паскале для вычисления факториала 10! (10!=1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    var
      fact, n : integer;
    begin
      fact := 1; {начальное значение факториала =0! }
      n := 1;    {начальное значение для условия }
      while n<=10 do     {условие }
       begin             {начало тела конструкции с составным оператором }
         fact := fact*n; {вычисление факториала n! }
         n := n + 1       {n должно меняться в теле конструкции}
       end;                {конец тела цикла }
      writeln(10!=,fact);  {вывод результата расчета }
    end.

    Здесь необходимо обратить внимание на то, что присваивание n := 1 стоит до цикла, если этого не сделать, то условие будет работать некорректно, так как переменная n будет пуста.

    Программа возведения в степень числа в Паскале

    Для начала уточним, что есть формула вычисления степени на Паскале. Но мы не будем ее использовать, а разберем алгоритм решения задачи возведения в степень.

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

    Таким образом, возведение числа n в степень d можно выразить так:
    nd = n1 * n2 * n3 * … * nd, где нижние индексы просто указывают очередное по счету число n.

    Еще необходимо учесть следующее:

    • число в нулевой степени равняется 1
    • если показатель степени отрицателен, т.е. d < 0, то задача решается по формуле:
      nd = 1 / (n1 * n2 * n3 * … * nd)

    Т.е., решая программу на Паскале, учитываем:

    • в программе на языке Паскаль количество итераций (повторений) цикла while должно быть равно показателю степени числа по модулю;
    • если показатель степени — отрицательное число, то нужно впоследствии единицу разделить на результат.

    Задача 6. Вычислить в Паскале степень числа, используя цикл while.

      
    [Название файла: L3task6.pas]

    Задача 7. Дана последовательность вещественных чисел, признак завершения которой — число 0 (оно не считается элементом последовательности). Найти сумму всех положительных элементов этой последовательности.

    Пример результата:

    Введите член последовательности
    4
    Введите член последовательности
    -1
    Введите член последовательности
    5
    Введите член последовательности
    7
    Введите член последовательности
    0
    Сумма положительных чисел = 16

      
    [Название файла: L3task7.pas]

    Назад в начало

    Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.

    i = 0

    while i < 5:

        print(i)

        i += 1

    # Вывод:

    >>> 0

    >>> 1

    >>> 2

    >>> 3

    >>> 4

    Цикл while и цикл for имеют схожую структуру, НО есть одно важное различие – цикл while может быть бесконечным.

    i = 0

    while True:

        print(i)

        i += 1

    # Вывод:

    >>> 0

    >>> 1

    >>> 2

    >>> 3

    >>> 4

    # Это может продолжаться долго…

    Код выше будет бесконечно печатать возрастаютщую последовательность чисел.

    Цикл while можно сравнить с цикличным условным оператором.

    text = ‘Hello world’

    i = 0

    while i < len(text):

        print(text[i])

        i += 1

    # Вывод:

    >>> H

    >>> e

    >>> l

    >>> l

    >>> o

    >>>

    >>> w

    >>> o

    >>> r

    >>> l

    >>> d

    Код, приведенный выше, печатает строку посимвольно. Приведу пример аналогичного цикла for:

    text = ‘Hello world’

    for i in text:

        print(i)

    # Вывод:

    >>> H

    >>> e

    >>> l

    >>> l

    >>> o

    >>>

    >>> w

    >>> o

    >>> r

    >>> l

    >>> d

    Более того, я приведу даже два цикла for!

    text = ‘Hello world’

    for i in range(len(text)):

        print(text[i])

    Напомню, что отличие между двумя, приведенными выше примерами, в следующем: первый цикл проходит по элементам последовательности (в нашем случае строки), а второй — по ее индексам. Здесь также используется функция len(), которая позволяет узнать длину последовательности.

    Вернемся к циклу while. Цикл while, как и цикл for, можно остановить с помощью специальной управлющей конструкции break.

    j = 0

    while True:

        if j == 3:

            print(‘Выход из цикла’)

            break

        print(j)

        j += 1

    # Вывод:

    >>> 0

    >>> 1

    >>> 2

    >>> Выход из цикла

    Конструкция break прерывает цикл. Она очень похожа на обычное условие после ключевого слова while.

    Так же есть еще одна управляющая конструкция – continue. С ее помощью мы можем не выпонять текущую итерацию (повторение) цикла и перейти сразу к следующему.

    j = 0

    while j < 5:


        j += 1

        if j == 3:

            print(‘Пропускаем j == 3)

            continue

        print(j)

    # Вывод:

    >>> 1

    >>> 2

    >>> Пропускаем j == 3

    >>> 4

    >>> 5

    Как и для цикла for, для цикла while мы можем записать конструкцию else.

    from random import randint

    j = 0

    element = randint(0, 15)

    while j < 10:

        j += 1

        if j == element:

            print(‘Нашли element, он равен’, element)

            break

    else:

        print(‘Неудачная попытка’)

    Примеры решения задач

    Возведение числа в степень с помощью цикла while

    n = int(input()) # число

    k = int(input()) # степень

    i = 1 # текущая степень

    result = 1

    while i <= k:

        result *= n

        i += 1

    print(result)

    Сумма последовательности с помощью цикла while

    n = int(input())

    result = 0

    i = 0

    while i <= n:

        result += i

        i += 1

    print(result)

    Ввод последовательности чисел

    i = 0

    while True:

        n = input()

        if n == ‘end’:

            print(‘Ввод закончен’)

            print(‘Было введено’, i, ‘чисел’)

            break

        n = int(n)

        i += 1

    Сумма введенных чисел

    i = 0

    summa = 0

    while True:

        n = input()

        if n == ‘end’:

            print(‘Ввод закончен’)

            print(‘Было введено’, i, ‘чисел’)

            print(‘Их сумма равна’, summa)

            break

        n = int(n)

        summa += n

        i += 1

    Решение задач

    1. Дано положительное число N. Вывести все числа от 0 до N с помощью цикла while.

    2. Дано положительное число N. Вывести все числа от N до 0 с помощью цикла while. Пример:

    Ввод: N = 10

    Вывод: 10

            9

            8

            7

            6

            …

            0

    3. Даны два положительных числа K и N (K < N). Вывести все числа от K до N с помощью цикла while.

    4. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A (взятие остатка A % B)

    5. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A (деление нацело A // B)

    6. Дано положительное число N. Найти сумму всех четных чисел от 0 до N с помощью цикла while.

    7. Даны два положительных числа K и N (K < N). Найти сумму всех нечетных чисел от K до N с помощью цикла while.

    8. Дано положительное число N. Найти факториал числа N. Факториалом числа называется произведение всех чисел от 1 до N. Например, факториал числа 5 равен 5! = 1*2*3*4*5 = 120, 2! = 1*2 = 2, 9! = 1*2*3*4*5*6*7*8*9 = 362880

    9. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести YES, если не является – вывести NO.

    10. Дано целое число N (> 0). Найти двойной факториал N: N!! = N * (N-2) * (N-4)* …. Для решения этой задачи посмотрите на задачу 2

    Сложные задачи

    1. Дано целое число N (> 1). Найти наименьшее целое число K, при котором выполняется неравенство 3^K > N, где 3^K – это 3 в степени K или число 3, умноженное само на себя K раз. Например, 3^5 = 3*3*3*3*3. Ответом в задаче будет первая степень числа 3, которая больше, чем заданное число N. Например, если N=41, распишем степени числа три: 3^1 = 3; 3^2 = 3*3 = 9; 3^3 = 3*3*3 = 27; 3^4 = 3*3*3*3 = 27 * 3 = 81;. Таким образом, первая степень, в которую возвести число 3, превышающая число N – это 4.
    В этой задаче нужно выполнять цикл while, пока остаток от деления на число три равен 0

    2. Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от деления, вывести все его цифры, начиная с самой правой (разряда единиц).
    Перед решением этой задачи вспомните, как найти сумму цифр трехначного числа.

    3. Даны целые положительные числа A и B. Найти их наибольший общий делитель (НОД), используя алгоритм Евклида: НОД(A, B) = НОД(B, A mod B), если B = 0; НОД(A, 0) = A.

    4. Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину пробега на P процентов от пробега предыдущего дня (P — вещественное, 0 < P < 50). По данному P определить, после какого дня суммарный пробег лыжника за все дни превысит 200 км, и вывести найденное количество дней K (целое) и суммарный пробег S (вещественное число).

    5. Дано целое число N (> 1). Последовательность чисел Фибоначчи FK определяется следующим образом: F(1) = 1, F(2) = 1, F(K) = F(K-2) + F(K-1), K = 3, 4, …. Проверить, является ли число N числом Фибоначчи. Если является, то вывести TRUE, если нет – вывести FALSE.

    6. Даны положительные числа A, B, C. На прямоугольнике размера A x B размещено максимально возможное количество квадратов со стороной C (без наложений). Найти количество квадратов, размещенных на прямоугольнике. Операции умножения и деления не использовать.

    7. Дано целое число N (> 1), являющееся числом Фибоначчи: N = F(K). Найти целое число K – порядковый номер числа Фибоначчи N.

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

    Примечание: не использовать функцию pow для нахождения степени. Результат работы программы показан на рисунке 1. Подсказка — используйте циклы, в частности — цикл for.

    CppStudio.com

    Enter number:
    2
    Enter power: 10
    number = 1024

    Рисунок 1 — Возведение числа в степень

    // pow.cpp: определяет точку входа для консольного приложения.
    
    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
        cout << "Enter number: " << endl; // введите число
        int numb; // число возводимое в степень
        cin >> numb;
        cout << "Enter power: "; // введите степень
        int power;
        cin >> power;
        int count = 1; // переменная отвечающая за истинность условия цикла do while
        int power_numb = numb; // результат возведения числа в степень
        do
        {
            if (power == 0)
                power_numb = 1;
            else
                if (power != 1 && power > 0)
                    power_numb = power_numb * numb; // возводим в степень
            count++; // инкремент переменной-счётчика
        } while ( power > count); // проверка условия цикла do while
        cout << "number = " << power_numb << endl; // печать возведённого числа в степень
        system("pause");
        return 0;
    }

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

    #include <stdio.h>
    #include <iostream>
    using namespace std;
    
    int main(){
            setlocale (LC_ALL, "RUS");
            int a, n, rezult=1, i;
            cout<< "Введите возводимое в степень число: ";
            cin>>a;
            cout<< endl<< "Введите стень числа: ";
            cin>>n;
            for(i=0; i<n; i++)
                    rezult *=a;
            cout<< endl<< "Результата возведения в степень "<<n<< " числа "<< a<< " = "<<rezult<< endl;
            return 0;
    }

    Могу сказать, что данный исходник немного меньше предыдущего, возведение в степень выполняется тоже через цикл, но, цикл for. Возможно не хватает парочки проверок, но в целом решение правильное.

    Добавил очередное решение задачи возведения числа в степень, которое предоставил нам — Алексей Нестерчук. Код программы показан ниже:

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int a, b, z;
        cout<< "Chislo: "<<endl;
        cin>>a;
        z = a;
        cout<<" Stepen: "<<endl;
        cin>>b;
        cout<<"--------"<<endl;
    
        for (int i = 1; i<b; i++ ){
            a = a * z;
            cout<<a<<endl;
        }
    cin.get();
    }

    Пример работы последнего исходника. Особенность этого исходника в том, что возведение в степень отображается пошагово, это хорошо видно из примера. Поблагодарим Алексея Нестерчука за данный исходник.

    CppStudio.com

    Chislo: 
    2
     Stepen: 
    10
    --------
    4
    8
    16
    32
    64
    128
    256
    512
    1024

    Добавить комментарий