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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Xen_OS
1 / 1 / 0
Регистрация: 30.03.2008
Сообщений: 9
#1

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

14.06.2014, 12:17. Просмотров 542. Ответов 17
Метки нет (Все метки)

Почему, когда я пытаюсь возвести в квадрат x с типом int, то получается 24, а когда с типом double, то все хорошо и получается 25?

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main()
{
    int x = 5;
    x=exp(2*log(x));
    cout << x;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2014, 12:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возведение в степень (C++):

Возведение в степень - C++
напишите программный код для С++ Builder

Возведение в степень - C++
Срочно, помогите записать выражение cos^4(x)

Возведение в степень - C++
Дано число n и его нужно возвести в степень s. Можно ли это как-то сделать не используя циклы. Заранее спасибо...

Возведение в степень - C++
Подскажите оператор для возведения числа в n-ую степень. Зарание спасиба

Возведение a в степень b - C++
Пользователь вводит числа а и b, программа считает &quot;а&quot; в степени &quot;b&quot;. Помогите написать код

Возведение в степень - C++
Совсем недавно начал изучать C++. Учу по книге. Было задание: Вводишь число Вводишь степень в которую надо возвести это число ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
14.06.2014, 12:25 #2
Выведи exp(2*log(x)) на экран и поймешь.
RaiaNKnight
96 / 70 / 7
Регистрация: 29.06.2011
Сообщений: 465
Записей в блоге: 1
14.06.2014, 12:29 #3
C++
1
2
3
4
5
6
7
8
9
10
11
#include <math.h>
#include <stdio.h>
 
using namespace std;
 
int main()
{
    int x = 5;
    printf("%.18lf", exp(2*log(x)));
    return 0;
}
Узреть, понять, просветиться!
EfesXZC
2 / 2 / 1
Регистрация: 07.08.2015
Сообщений: 68
08.08.2015, 16:20 #4
Необходимо число a возвести в степень n с использованием циклов. Все бы хорошо, но при попытке использовать дробные числа, ответ всегда получается единица. С чем это связано?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    double x, n, xn=1;
 
    cout << "Введите число: ";
    cin >> x;
    cout << "Введите степень:";
    cin >> n;
 
    for (int i; i<n; i++) {
        xn = xn * x;
    }
 
    cout <<"Число "<< x <<" в степени "<< n <<" : "<< xn << endl;
 
    return 0;
}
Croessmah
Модератор
Эксперт CЭксперт С++
13133 / 7396 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
08.08.2015, 16:22 #5
Чему равно i при "старте" цикла?
castaway
08.08.2015, 16:24
  #6

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Чему равно i при "старте" цикла?
Мне кажется что он тему уже потерял и найти уже не сможет..))

Croessmah
08.08.2015, 16:27
  #7

Не по теме:

castaway, не знаю, у меня она вообще еще в будущем

castaway
08.08.2015, 16:29
  #8

Не по теме:

Croessmah, дата на ПК неправильная?)

Croessmah
Модератор
Эксперт CЭксперт С++
13133 / 7396 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
08.08.2015, 16:33 #9

Не по теме:

castaway, скорее всего часовой пояс не тот у меня выставлен в профиле. Лень смотреть )))



Добавлено через 2 минуты

Не по теме:

castaway, поправил. Коррекция времени включена была :-)

EfesXZC
2 / 2 / 1
Регистрация: 07.08.2015
Сообщений: 68
08.08.2015, 17:19 #10
Ну да... Уже исправился )
C++
1
2
3
for (int i=0; i<n; i++) {
        xn = xn * x;
    }
Но проблема не исчезла. Теперь ответ всегда равен введенному числу x.
SerVal
23 / 23 / 2
Регистрация: 16.04.2015
Сообщений: 208
08.08.2015, 17:26 #11
Цитата Сообщение от EfesXZC Посмотреть сообщение
Но проблема не исчезла. Теперь ответ всегда равен введенному числу x.
Что выводите, то и показывает. Вычисляете xn, а выводите x
Попробуйте вывести xn
Abell
0 / 0 / 0
Регистрация: 08.08.2015
Сообщений: 32
08.08.2015, 17:36 #12
SerVal, всё он правильно выводит. Посмотрите внимательнее.

Добавлено через 5 минут
EfesXZC, всё работает верно. Вы уверены, что не ошибаетесь при вводе данных?
Нажмите для просмотра кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int main()
{
    double x, n, xn = 1;
    
    cin >> x >> n;
    
    for (int i = 0; i < n; i++)
        xn *= x;
        
    cout << xn << endl;
    
    return 0;
}
EfesXZC
2 / 2 / 1
Регистрация: 07.08.2015
Сообщений: 68
08.08.2015, 17:42 #13
С целыми числами все правильно работает, но например при попытке возвести 4 в степень 0,5 выводит 4.
Abell
0 / 0 / 0
Регистрация: 08.08.2015
Сообщений: 32
08.08.2015, 17:48 #14
EfesXZC, а, так вы говорите не только про натуральную степень?
Цитата Сообщение от EfesXZC Посмотреть сообщение
например при попытке возвести 4 в степень 0,5 выводит 4.
Потому что i после 0, сразу станет 1. Следовательно цикл никогда не сделает xn больше чем x.

Добавлено через 1 минуту
Если не понятно, то вместо вашего компьютера выполните ваш код сами на бумажке при помощи ручки.
EfesXZC
2 / 2 / 1
Регистрация: 07.08.2015
Сообщений: 68
08.08.2015, 18:02 #15
Цитата Сообщение от Abell Посмотреть сообщение
Потому что i после 0, сразу станет 1. Следовательно цикл никогда не сделает xn больше чем x.
Вот блин. Благодарю за помощь чайнику ) А вообще возможно реализовать возведение в ненатуральную степень с помощью циклов?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2015, 18:02
Привет! Вот еще темы с ответами:

Возведение в степень! - C++
Возник вопрос - Возможно пока не понятна в чем мысль! Попробую на примере объяснить! Возведение числа 2 в 1000 - ую степень будет...

возведение в степень! - C++
Кто помнит функцию возведения в степень.?? &quot;трам-пам-пам&quot; (a,b) ???? Добавлено через 3 минуты И еще желательно...

Возведение в степень. C++ - C++
можно ли написать программу для возведения в вводимую степень вводимого числа с помощью рекурсивной функции

Возведение в степень - C++
Вам конечно это покажется тупой проблемой, но всё же. Напишите пожалуйста как возводить в степень на си и пример. В инете что ищу всё на...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.08.2015, 18:02
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru