Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Last active April 15, 2020 07:52
Show Gist options
  • Save parzibyte/1654a27fc61939898597f761575f2a84 to your computer and use it in GitHub Desktop.
Save parzibyte/1654a27fc61939898597f761575f2a84 to your computer and use it in GitHub Desktop.
/*
____ _____ _ _ _
| _ \ | __ \ (_) | | |
| |_) |_ _ | |__) |_ _ _ __ _____| |__ _ _| |_ ___
| _ <| | | | | ___/ _` | '__|_ / | '_ \| | | | __/ _ \
| |_) | |_| | | | | (_| | | / /| | |_) | |_| | || __/
|____/ \__, | |_| \__,_|_| /___|_|_.__/ \__, |\__\___|
__/ | __/ |
|___/ |___/
Blog: https://parzibyte.me/blog
Ayuda: https://parzibyte.me/blog/contrataciones-ayuda/
Contacto: https://parzibyte.me/blog/contacto/
Copyright (c) 2020 Luis Cabrera Benito
Licenciado bajo la licencia MIT
El texto de arriba debe ser incluido en cualquier redistribución
*/
#include <stdio.h> // Para printf
#include <stdlib.h> // Para EXIT_SUCCESS
/*
Calcular pi usando la fórmula de Leibniz
Recuerda: entre más iteraciones, mayor precisión
*/
double calcularPi(double iteraciones) {
double numerador = 4;
double denominador = 1; // A este lo vamos a ir aumentando de 2 en 2
double pi = 0;
int x = 0;
// Recuerda que es alternar entre negativo y positivo; por eso la bandera.
// Comenzamos en positivo
int operador = 1;
for (x; x < iteraciones; x++) {
pi += operador * (numerador / denominador);
denominador += 2; // El denominador aumenta de 2 en 2
operador *= -1; // Alternamos operador
}
return pi;
}
int main() {
double iteraciones = 10;
double pi = calcularPi(iteraciones);
printf("Al calcular pi con %-10.lf iteraciones se obtiene %1.20lf\n",
iteraciones, pi);
iteraciones = 1000;
pi = calcularPi(iteraciones);
printf("Al calcular pi con %-10.lf iteraciones se obtiene %1.20lf\n",
iteraciones, pi);
iteraciones = 10000;
pi = calcularPi(iteraciones);
printf("Al calcular pi con %-10.lf iteraciones se obtiene %1.20lf\n",
iteraciones, pi);
iteraciones = 100000;
pi = calcularPi(iteraciones);
printf("Al calcular pi con %-10.lf iteraciones se obtiene %1.20lf\n",
iteraciones, pi);
iteraciones = 1000000;
pi = calcularPi(iteraciones);
printf("Al calcular pi con %-10.lf iteraciones se obtiene %1.20lf\n",
iteraciones, pi);
iteraciones = 10000000;
pi = calcularPi(iteraciones);
printf("Al calcular pi con %-10.lf iteraciones se obtiene %1.20lf\n",
iteraciones, pi);
iteraciones = 100000000;
pi = calcularPi(iteraciones);
printf("Al calcular pi con %-10.lf iteraciones se obtiene %1.20lf\n",
iteraciones, pi);
iteraciones = 1000000000;
pi = calcularPi(iteraciones);
printf("Al calcular pi con %-10.lf iteraciones se obtiene %1.20lf\n",
iteraciones, pi);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment