Ir para conteúdo
Fórum Script Brasil
  • 0

Escrever em C um programa que calcule potencias grandes do tipo 10^20


diegoluis89

Pergunta

Sou novo em c, gostaria de saber se é possível escrever um programa que faça calculos com numeros grades.. do tipo 10^20.

creie este:

#include<stdio.h>
#include<math.h>
main(){
long int x, n, pot;
printf("Este programa calcula a potencia, dado a base x e o expoente n.\nPor favor, entre com a base x\n");
scanf("%ld", &x);
printf("Agora entre com a potencia n\n");
scanf("%ld", &n);
pot=pow(x,n);
printf("O resultado de %ld elevado a %ld é: %ld\n", x, n, pot);
return 0;
}
mas quando vou calcular potencias grandes, da um numero errado. alguém tem alguma ideia? Obg.
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá, no momento estou na faculdade e aqui na sala que me encontro não tem a linguagem C, portanto, tentarei sanar uma resolução para o seu caso quando chegar em casa.

No entanto, apenas para adiantar, não sei se você sabe, mas se representarmos uma potenciação com valores grandes, como por exemplo: "10^20", perceba que o resultado será em forma cientifica, pois o valor do resultado do tipo inteiro não será suportado, e por isso o transforma para uma notação cientifica, no caso 10^20 será 1e+20.

Tenho certeza de que seja impossível ser demonstrado um valor inteiro nesse tipo de caso, onde o resultado da potenciação será demasiadamente grande. Até porque há um limite para o valor que será assumido nessa variável do tipo inteiro.

Editado por Raphaelhelper
Link para o comentário
Compartilhar em outros sites

  • 0

Olá, cheguei em casa... rs'

Respondendo a sua pergunta: Sim, é possível criar um programa que faça cálculos com números grandes.. do tipo 10^20. Neste caso, como teremos um valor enorme não se utiliza variável do tipo int ou long int. Ao invés disso, o tipo de variável que deverá ser empregada deverá ser do tipo double, pois este irá suportar o resultado de 10^20. Agora tome cuidado!! ainda para a variável do tipo double, existe uma limitação no quanto poderá ser armazenado nesse tipo de variável. Se quiser analisar o meu código, fique a vontade:

#include <stdio.h>
#include <math.h>
int main()
{
int b, p;
double resultado;
printf("Informe o valor da base\n");
scanf("%d",& B);
printf("Informe o valor da potencia\n");
scanf("%d",&p);
resultado = pow(b,p);
printf("O valor de %d elevado a %d sera %.00f.",b,p,resultado);
return 0;
}
Espero ter ajudado'
Editado por Raphaelhelper
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...