, если диапазон d равен 1 < = d < = 10^101 и n равен 1 < = n < = 200. поскольку диапазон двойных равен 2,3E-308 до 1.7E + 308. когда я принимаю вход 11111111111111111111 как d, тогда значение d становится 11111111111111111000.000, когда я показываю значение терминалу. это означает, что он не может правильно ввести вход, то как он даст правильное значение для 10^101. Мне нужно знать n-й корень из d. d всегда будет иметь вид p = k^n. поэтому я добавил функцию pow, чтобы узнать n-й корень. но проблема в том, что диапазон p огромен. я пытаюсь решить эту проблему Power of Cryptography!как этот код будет работать для большего номера диапазона?
int main(){
double d,n;
scanf("%lf%lf", &n, &d))
{
printf("%lf\n", pow(d, 1/n));
}
return 0;
}
Добро пожаловать в мир чисел с плавающей запятой. Вы должны взглянуть на концепцию точности. Для произвольной точности FP см. [MPFR] (http://www.mpfr.org/). –
@MargaretBloom - вы поняли вопрос? Может быть, это просто я :( –
@MartinJames ahahah, я только что сделал и получил обоснованное предположение. –