Решение задачи!
<Вычислить 2 в 1000-ной степени...
Я решаю так.
#include <stdio.h>
int main(void)
{
long int x=2,h;
for (x=0; x<=1000; x++) h=x*x;
printf("%d\n",h);
scanf("%d");
return 0;
}
Но объём типа данных не позволяет выдать такое крупное число...
Как ещё можно решить эту задачу???
Я где то про такие задачки читал и там их решали создавая свой класс.
#include <math.h>
double pow( double x, double y );
Description:
The pow function computes x raised to the power y. A domain error occurs if x is zero and y is less than or equal to 0, or if x is negative and y is not an integer. A range error may occur.
Returns:
The pow function returns the value of x raised to the power y. When the argument is outside the permissible range, the matherr function is called. Unless the default matherr function is replaced, it will set the global variable errno to EDOM, and print a "DOMAIN error" diagnostic message using the stderr stream.
Мне честно говоря лень считать, сколько будет 2 в 1000, но если не хватит этой функции и разрядов double для вычисления, тогда действительно придется писать что-то свое
WString rezult;
rez=pow(2,1000);
if(errno!=0) label_1->SetText("Не лезет, собака!");
else {
rezult.Sprintf("%g",rez);
label_1->SetText(rezult);
}
Это под винду.
У меня, кстати, получилось число 1.07151e+301 ;-)