Rafael Escudero / Mbed 2 deprecated escudero_ej3

Dependencies:   mbed

main.cpp

Committer:
rescudev
Date:
2021-03-26
Revision:
0:8913a85b9514

File content as of revision 0:8913a85b9514:

#include <stdio.h>
#include "mbed.h"

void pi(void)
{
    //Número de decimales que se expresan
    const int n=10000;
    //Tamaño del array y definición del resto de variables
    const int dim =3334;
    int i, j, k, resto, digant, nueves, aux;
    int pi[dim+1];

    //Código del algoritmo
    for (i=1;i<= dim;i ++)
    {
        pi[i]=2;
        nueves=0; 
        digant =0;
    } 
    for (i=1;i<=n;i++)
    {
        resto=0;
        for (j= dim;j >=1;j--)
        {
            aux =10*pi[j]+resto*j;
            pi[j]= aux % (2*j-1);
            resto=aux /(2*j-1);
        }
        pi[1]=resto % 10;
        resto=resto/10;
        if(resto==9)
        {
             nueves++;       
        } 
        else if (resto==10)
        {
            printf("%i", digant);
            for (k=1;k<=nueves;k++)
            {
                printf ("0");
                digant=0;
                nueves=0;
            } 
        }
        else
        {
            printf("%i", digant);
            digant=resto;
            if(nueves!=0)
            {
                for(k=1;k<=nueves;k ++) 
                {
                    printf ("9");
                    nueves=0; 
                }              
            }
        }
     }
     printf("%i", digant);
}


int main()
{
    while(1){
        //Llamada a la función dentro del bucle
        printf("\nPrimeros 10000 decimales de PI:\n\r");
        pi();
        printf("\n");
        wait(1);   
    }    
}