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

2 в двохсотой степени(С++) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.11.2009, 19:36     2 в двохсотой степени(С++) #1
Помогите мне посчитать 2 в двухсотой степени, вроде простенькая задачка, но в то же самое время, необходимо чтобы были выведены все знаки. Я написал такую программку, но она пишет что ответ равен бесконечности.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include<conio.h>
#include<stdio.h>
 using namespace std;
int main ()
{
     float r;
   
 r=2;
 for(int i=1;i<200;i++)
    {
 
     r=r*r;
     }
 
 
    cout<<"2 v 200 stepeni = "<<r<<endl;
   
    system("Pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2009, 19:36     2 в двохсотой степени(С++)
Посмотрите здесь:

C++ n>=a в степени k
C++ 3 во 2 степени .
Число в степени -1 C++
C++ вычисление степени
C++ Найти A в степени N
Вывести A в степени N C++
C++ е в степени x
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Goodwin98
 Аватар для Goodwin98
2516 / 812 / 9
Регистрация: 31.05.2009
Сообщений: 1,671
07.11.2009, 20:15     2 в двохсотой степени(С++) #2
а причем тут низкоуровневое програмирование?

А вообще такие вещи считаются по формуле Exp(Y*Ln(X)).
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.11.2009, 20:18  [ТС]     2 в двохсотой степени(С++) #3
А можешь объяснить как?

Добавлено через 2 минуты
Оно будет выводить все знаки?
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.11.2009, 20:25     2 в двохсотой степени(С++) #4
Shevva,
1. Твой код - 199 раз возводит предыдущее значение R в квадрат. Это не 200 степень.

2. Если же уже так, тогда надо было писать так:
C++
1
2
for(int i=1;i<200;i++)
    r*=2;
Но, скорее всего результат выйдет за пределы разрядно сетки типа.
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.11.2009, 20:27  [ТС]     2 в двохсотой степени(С++) #5
да, но когда запускаешь прогу. в ответе всё равно пишет бесконечность.
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.11.2009, 20:28     2 в двохсотой степени(С++) #6
А вот, что советовал
Goodwin98:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<cmath>
using namespace std;
 
int main ()
{
    double r = exp(200*log(2));
      
    cout << "2 v 200 stepeni = " << r << endl;
 
    return 0;
}
Добавлено через 42 секунды
Цитата Сообщение от Shevva Посмотреть сообщение
да, но когда запускаешь прогу. в ответе всё равно пишет бесконечность.
ты читал что я тебе написал?
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
результат выйдет за пределы разрядно сетки типа.
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.11.2009, 20:33  [ТС]     2 в двохсотой степени(С++) #7
В ответе выводит научную форму записи 1,60694е+60, а надо что-бы выводило все цифры

Добавлено через 1 минуту
Как сделать, что-бы выводило все цифры?
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
07.11.2009, 20:34     2 в двохсотой степени(С++) #8
Shevva, пиши свой тип данных для работы с длинными целыми основанный на массивах или строках, как тебе удобнее. Воспользуйся поиском - подобные вопросы не раз обсуждались
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
07.11.2009, 20:37     2 в двохсотой степени(С++) #9
C
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<cmath>
using namespace std;
 
int main ()
{
    double r = exp(200*log(2));
      
    printf("2 v 200 stepeni ravno %f\n", r);
 
    return 0;
}
Добавлено через 3 минуты
C
1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
 
void main ();
{ 
    printf("2 v 200 stepeni ravno %f\n", double r = pow(2.,200.));
    cin.get();
 
}
так тоже вроде можно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2009, 20:39     2 в двохсотой степени(С++)
Еще ссылки по теме:

Цифра в степени C++
Корень n-й степени C++
Вычислить А в степени n C++
Три в степени k C++
C++ Рассчитать степени

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

Или воспользуйтесь поиском по форуму:
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
07.11.2009, 20:39  [ТС]     2 в двохсотой степени(С++) #10
Спасибо, в первом случае вроде работает правильно.
Yandex
Объявления
07.11.2009, 20:39     2 в двохсотой степени(С++)
Ответ Создать тему
Опции темы

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