Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/419: Рейтинг темы: голосов - 419, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 01.11.2012
Сообщений: 8

Возведение в степень

01.11.2012, 12:53. Показов 84019. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите написать программу,
возводящщую число M в степень N
(-10<M<10, 0<N<10 - проверить
выполнение данных условий)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2012, 12:53
Ответы с готовыми решениями:

Возведение числа в степень за минимальное количество умножений, не используя возведение в степень (в чем ошибка?)
должно число подводиться в степень за минимальное кол умножения не используя возведение в степень. Помогите, что не так? И почему?...

Возведение в степень
Здрасьте! Есть выражение {x}^{-k*(t/4)}, как его записать? #include &lt;math.h&gt; #include &lt;stdio.h&gt; void main(void) { int x = 5, k...

Возведение суммы в степень
Нужно написать программу вычислений Вещественный тип (a + b)3 Целочисленный тип (a + b)2 (числовые параметры задаются самостоятельно...

8
19 / 19 / 13
Регистрация: 22.11.2011
Сообщений: 101
01.11.2012, 13:46
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <conio.h>
#include <stdio.h>
#include <locale.h>
#include <math.h>
 
void main(void)
{
    setlocale(LC_ALL, "RUS");
    int M,N;
    float result;
    printf("Введите число: ");
    scanf("%d",&M);
    printf("Введите степень: ");
    scanf("%d",&N);
    if(M>-10 && M<10 && N>0 && N<10)
    {
        result=pow((double)M,(double)N);
        printf("%d в степени %d = %f",M,N,result);
    }
    else
    {
        printf("M не принадлежит области -10<M<10 или N не принадлежит области 0<N<10");
    }
    getch();
    return;
}
3
0 / 0 / 0
Регистрация: 01.11.2012
Сообщений: 8
01.11.2012, 13:54  [ТС]
Спасибо)
0
 Аватар для UriahHeep
224 / 219 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
01.11.2012, 13:55
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
36
37
38
39
#include <stdio.h>
#include <stdlib.h>
 
float power(float x, int y);
 
int main(void) {
 
    float m;
    int n;
 
    printf("Введите основание степени M: ");
    scanf("%f", &m);
    if (m >= 10 || m <= -10) {
        printf("Основание степени не принадлежит интервалу (-10, 10).\n");
        return EXIT_SUCCESS;
    }
 
    printf("Введите показатель степени N: ");
    scanf("%d", &n);
    if (n >= 10 || n <= 0) {
        printf("Показатель степени не принадлежит интервалу (0, 10).\n");
        return EXIT_SUCCESS;
    }
 
    printf("M ^ N = %g\n", power(m, n));
 
    return EXIT_SUCCESS;
}
 
float power(float x, int y) {
 
    int i;
    float rez = 1;
 
    for(i = 1; i <= y; ++i) {
        rez *= x;
    }
    return rez;
}
3
0 / 0 / 0
Регистрация: 01.11.2012
Сообщений: 8
01.11.2012, 14:03  [ТС]
а как с циклом for? мне как раз с ним и надо
0
 Аватар для UriahHeep
224 / 219 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
01.11.2012, 14:14
Так у меня с циклом for:
C
1
2
3
4
5
6
7
8
9
10
float power(float x, int y) {
 
    int i;
    float rez = 1;
 
    for(i = 1; i <= y; ++i) {
        rez *= x;
    }
    return rez;
}
2
0 / 0 / 0
Регистрация: 01.11.2012
Сообщений: 8
01.11.2012, 16:35  [ТС]
а еще проще можно написать?
0
 Аватар для UriahHeep
224 / 219 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
01.11.2012, 17:16
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Вот ещё проще, без функции.
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
#include <stdio.h>
#include <stdlib.h>
 
int main(void) {
 
    float m, rez = 1;
    int n;
 
    printf("Введите основание степени M: ");
    scanf("%f", &m);
    if (m >= 10 || m <= -10) {
        printf("Основание степени не принадлежит интервалу (-10, 10).\n");
        return EXIT_SUCCESS;
    }
 
    printf("Введите показатель степени N: ");
    scanf("%d", &n);
    if (n >= 10 || n <= 0) {
        printf("Показатель степени не принадлежит интервалу (0, 10).\n");
        return EXIT_SUCCESS;
    }
 
    for( ; n > 0; --n) {
        rez *= m;
    }
 
    printf("M ^ N = %g\n", rez);
 
    return EXIT_SUCCESS;
}
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
01.11.2012, 17:57
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от ИльяШ Посмотреть сообщение
а еще проще можно написать?
Да не вопрос!
C
1
double power(double base, size_t index) { return ( index ) ? base * power(base, index - 1) : 1; }
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2012, 17:57
Помогаю со студенческими работами здесь

Быстрое возведение в степень
дано a. Пользуясь только умножением, выполнить: вычислить a^4 за две операции; вычислить a^4 и a^{20} за пять операций Одна...

Возведение числа q в степень (n-1)
Проблема связана с возведением числа q в степень (n-1). int q; int h; int bn,i; int b1,n; int main(){ printf(&quot;vvedite...

Возведение матрицы в степень
Привет. Нигде не могу найти алгоритм возведения матрицы в степень. Есть программа, которой я ввожу матрицу 3х3, передо мной стоит задача...

Возведение в степень с помощью рекурсии
программа должна возводить в целую (положительную и отрицательную) степень действительного числа с использованием рекурсии

Рекурсивное возведение в целую степень
Только начал разбираться с рекурсией, идет туго. Возведение в степень получилось примерно таким : #define _CRT_SECURE_NO_WARNINGS ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru