Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1

Рекурсивная функция a^b с 2-я аргументами

14.10.2015, 11:23. Показов 1149. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно возможно ли это сделать? Я не смог придумать с 2-я аргументами, только с 3-я
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
30
31
32
33
34
35
#include <iostream>
#include <cstdlib>
#include <conio.h>
 
typedef long long int llint;
 
llint f( const int, llint, int );
 
int main() {
    std::string str,str2;
    std::cin >> str;
    int x = 0, n = 0;
    for( int i = 0; i < str.length(); i++ ) {
        str2 += str[i];
        if( str[i+1] == '^' ) {
            x = atoi( str2.c_str() );
            str2 = "";
            for( int j = i+2; j < str.length(); j++ ) {
                str2 += str[j];
            }
            n = atoi( str2.c_str() );
        }
    }
    std::cout << f( x, 1, n );
    getch();
    return 0;
}
 
llint f( const int x, llint y, int n ) {
    y *= x;
    if( n == 0 ) return 1;
    if( n != 1 )
        return f( x, y, n-1 );
    else return y;
}
Прошу не обращать внимание на вписывание примера, просто для себя сделал.

Добавлено через 13 часов 21 минуту
Никто что ли не шарит в рекурсиях?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2015, 11:23
Ответы с готовыми решениями:

Рекурсивная функция с тремя позитивными целыми числами n a b как аргументами
Создайте Рекурсивную функцию с тремя позитивными целыми числами n a b как аргументами. Функция должна суммировать те числа между 1 и n,...

Рекурсивная функция у меня другая но только не рекурсивная
Добрый день все ! Писал я про задачку но так и не кто откликнулся напомню о чем речь &quot; Добрый день форумчане! Мне...

Функция с аргументами
Написать функцию с аргументами вещественный массив x размер массива n. Функция возвращает значение суммы элементов массива, начиная с...

9
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
14.10.2015, 11:32
makfak,
C++
1
2
3
4
5
6
7
8
long long power(int x, int y)
{
    long long p = x;
    if (y == 0)
        return 1;
    else
        return p * power(x, y-1);
}
1
 Аватар для Barrent
252 / 128 / 54
Регистрация: 04.05.2013
Сообщений: 346
14.10.2015, 11:32
Для целых степеней:
C++
1
2
3
4
5
6
7
8
9
double recpow(double base, int pow) {
    if (pow == 0)
        return 1;
    if (pow < 0) {
        base = 1 / base;
        pow = -pow;
    }
    return base * recpow(base, pow - 1);
}
1
 Аватар для bogdan_017
21 / 21 / 19
Регистрация: 18.03.2014
Сообщений: 148
14.10.2015, 11:48
makfak, вопрос только: "зачем". Есть ведь функция pow.

Взято с хабра (линк ниже):
C++
1
2
3
int pow(int a,int n) {
  return (!n)?1:a*pow(a,n-1);
}
Можно расписать как, для большей наглядности:
C++
1
2
3
4
5
int rec (int a, int degree)
{
    if (!degree) return 1;
    else return a*pow(a, degree - 1);
}
линк на хабрахабр
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
14.10.2015, 18:54  [ТС]
bogdan_017,

Не по теме:

Потому что самому интересней.

0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
14.10.2015, 19:03
Цитата Сообщение от bogdan_017 Посмотреть сообщение
makfak, вопрос только: "зачем".
Цитата Сообщение от makfak Посмотреть сообщение
Потому что самому интересней.
Так а чего же ты тогда на форум с этим вопросом полез, раз самому интереснее?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
14.10.2015, 20:54  [ТС]
castaway, Так я сделал, просто интересно стало, как компактнее сделать.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
15.10.2015, 15:51
Цитата Сообщение от makfak Посмотреть сообщение
Никто что ли не шарит в рекурсиях?
Цитата Сообщение от makfak Посмотреть сообщение
Потому что самому интересней.
C++
1
2
int sq(int x) {return x*x;}
int p(int a, int n) {return n ? (n%2 ? a*p(a,n-1) : sq(p(a,n/2))) : 1;}
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
15.10.2015, 16:05  [ТС]
_Ivana, Есть вариант и полегче.
0
15.10.2015, 16:12

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.10.2015, 16:12
Помогаю со студенческими работами здесь

Функция с булевыми аргументами
Определить функцию,принимающую в качестве аргументов функцию и два булевых значения и возвращающую результат применения переданной функции...

timer_tick и функция с 3 аргументами
Добрый вечер господа, нужна опять ваша помощь. :) Собственно есть такой код: public void fadeOut( int speed, double...

Функция main с аргументами
Приветствую, подскажите где именно указывать параметры аргументов(int argc, char **argv), если использовать следующий тип записи int...

Функция с аргументами меняющихся типов
Как объявить функцию, чтобы объединить две снизу? То есть, чтобы была одна функция, и потом можно было бы написать &quot;f...

функция с аргументами массив и размерность массива
Собственно, для меня острая проблема, как с помощью указателей передать в функцию, размерность? // Function with array argument ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru