Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 11.06.2021
Сообщений: 37
1

Написать функцию, которая принимает число и степень, которую его нужно возвести

18.07.2021, 18:23. Показов 5083. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать функцию, которая принимает число и степень, которую его нужно возвести. Начал проходить функции если я правильно понял то выглядит примерно так эта задача . У меня вопрос правильно ли я реализовал задачу ?Она работает но но вроде как по условию ввод переменной и степени я так понял должен сделать отдельной функцией.Возможно ли это? так как у меня не выходит требует инициализации переменных если ввод хочу осуществить из другой функции..Есть ли решение ?или я всё же неправильно понял условие.
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
#include <iostream>
#include <math.h>
using namespace std;
//3. Написать функцию, которая принимает число и степень, которую его нужно возвести
//пример : stepen(2, 3) = 8, stepen(3, 4) = 81
 
int logic_Stepen(int a, int b)
{
    
    int result = pow(a, b);
    return result;
}
 
void Print_Answer(int a, int b,  int stepen)
{
    cout << "Answer = " << stepen << endl;
}
void main()
{
    
    int a, b;
    cin >> a >> b;
    int stepen = logic_Stepen(a, b );
    Print_Answer(a, b,stepen);
 
 
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2021, 18:23
Ответы с готовыми решениями:

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

Написать функцию, которая принимает число, а возвращает его факториал
Написать функцию, в которую передают число х, а возвращает х! (факториал этого числа)(Консольное...

Написать функцию, которая принимает в качестве аргумента целое число по ссылке, и увеличивает его на единицу
Dev C++

Разработать функцию, которая принимает 2 числа и возводит первое число в степень второго
Разработать функцию, которая принимает 2 числа и возводит первое число в степень второго и...

5
Модератор
Эксперт CЭксперт С++
5174 / 2896 / 1501
Регистрация: 14.12.2018
Сообщений: 5,233
Записей в блоге: 1
18.07.2021, 18:43 2
-AvP-, можно переделать функцию Print_Answer() как
C++
1
2
3
4
void Print_Answer(int a, int b, int stepen)
{
    cout << "stepen(" << a << ", " << b << ") = " << stepen << endl;
}
1
440 / 283 / 183
Регистрация: 23.06.2018
Сообщений: 651
18.07.2021, 18:47 3
Лучший ответ Сообщение было отмечено -AvP- как решение

Решение

Цитата Сообщение от -AvP- Посмотреть сообщение
правильно ли я реализовал задачу
Ну, скинутое вами условие - написать функцию, принимающую число и степень - вы реализовали правильно. Но выполнили ли вы скрытые условия я сказать не могу.
Цитата Сообщение от -AvP- Посмотреть сообщение
ввод переменной и степени я так понял должен сделать отдельной функцией.Возможно ли это?
C++
1
2
3
4
5
6
7
void read_numbers(int& a, int& b)
{
    cout << "Enter the number: ";
    cin >> a;
    cout << "Enter the power: ";
    cin >> b;
}
А это уже от меня:
1. Использовать pow для вычисления степени целых чисел, возможно, не самое лучшее решение.
2. Зачем Print_Answer принимает 3 числа, если выводит только одно?
1
0 / 0 / 0
Регистрация: 11.06.2021
Сообщений: 37
18.07.2021, 19:12  [ТС] 4
2. Зачем Print_Answer принимает 3 числа, если выводит только одно?-согласен с вами исправил у себя.
1. Использовать pow для вычисления степени целых чисел, возможно, не самое лучшее решение.- а тут если можно подробнее чем он плох? И если он всё же не так хорош в использовании в данном случае чем на ваш взгляд его можно тут заменить?
0
440 / 283 / 183
Регистрация: 23.06.2018
Сообщений: 651
18.07.2021, 21:04 5
Цитата Сообщение от -AvP- Посмотреть сообщение
подробнее чем он плох
Функция pow всегда возвращает дробные числа: https://en.cppreference.com/w/cpp/numeric/math/pow
Гарантий того, что передав 102 вы получите 100, а не 99.999 я нигде не видел, предполагаю, это зависит от реализации. Преобразование из double в int происходит простым отбрасыванием дробной части, следовательно, вы можете получить значение на 1 меньше реального.
Цитата Сообщение от -AvP- Посмотреть сообщение
чем на ваш взгляд его можно тут заменить
У меня два варианта:
1. Если особо не мудрить, то можно просто пройтись циклом в лоб:
C++
1
2
3
4
int res = 1;
while (b-- > 0)
    res *= a;
return res;
2. Если немного помудрить, то можно сократить количество умножений:
C++
1
2
3
4
5
int res = 1;
for (int tmp = a; b != 0; b /= 2, tmp *= tmp)
    if (b % 2 == 1)
        res *= tmp;
return res;
Заметьте, что оба варианта предполагают целые неотрицательные значения b. Если отрицательные значения возможны, то я уже не вижу смысла делать свою функцию, проще изменить возвращаемый тип на double.
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
18.07.2021, 21:35 6
Цитата Сообщение от -AvP- Посмотреть сообщение
У меня вопрос правильно ли я реализовал задачу ?
написать функцию не означает использовать готовую функцию
Цитата Сообщение от -AvP- Посмотреть сообщение
вроде как по условию ввод переменной и степени я так понял должен сделать отдельной функцией
не заметил такого требования в условии задачи

если степень целая можно так:
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
#include <iostream>
using namespace std;
 
double Power (double a, int b)
{    
    int k=0;    
    if(b<0) {k=1;b=-b;}
    
    double mult=1.;
    for (int i = 1; i <= b; i++)
        mult*=a;
    if(k==1) mult=1./mult;    
    return mult;
}
 
int main()
{
    int b;
    double a;
    cout << "a="; cin >> a;
    cout << "b="; cin >> b;
    
    cout << Power (a,b) << "\n";
    
    system("pause");
    return 0;
}
1
18.07.2021, 21:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2021, 21:35
Помогаю со студенческими работами здесь

Если введенное число отрицательное и четное, то возвести его в 3 степень, иначе возвести в квадрат
Ввести целое число В. Если В отрицательное и четное, то возвести его в 3 степень, иначе возвести в...

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

Написать функцию, которая принимает на вход число и лямбду
Написать функцию, которая принимает на вход число и лямбду, в которой содержится код обработки...

Написать функцию, которая по указателю принимает одномерный массив и его размер.
Здоров всэм!!! памагите ришыти задачу №1 Написати функцію, яка по вказівнику...

Написать функцию, которая возводит число в степень
1. написать функцию которая принимает число и степень в которую возвести число

Написать функцию, которая принимает одномерный массив и заполнить его случайными числами
Написать функцию, которая принимает одномерный массив и заполнить его случайными числами. Массив я...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru