Java > bigint

Titrebigint
Postée le26-10-2009
Affichée546
Mini-lien
Description

BigInt

EtatNe contient pas d'erreurs. Ne contient pas d'erreurs.
Code d'insertion
Options
Afficher les numéros de lignes  Mettre la source en plein ecran  Selectionner la source  Partager sur Facebook 
Téléchargement Telecharger en format txt  Telecharger en format pdf  Telecharger en format java
Plein ecran
import java.util.ArrayList;

class Test
{
        public static class BigInt
        {
                private ArrayList<Integer> l;
               
                public BigInt (int n)
                {
                        l = new ArrayList<Integer>();
                        while (n>0)
                        {
                                l.add (n%10);
                                n/=10;
                        }
                }
               
                public void fois (int n)
                {
                        ArrayList<Integer> lRes = new ArrayList<Integer>(); int res=0; int s = l.size();
                        for (int i=0 ; i<s ; ++i)
                        {
                                res += l.get(i)*n;
                                lRes.add (res%10);
                                res /= 10;
                        }
                        while (res > 0)
                        {
                                lRes.add (res%10);
                                res /= 10;
                        }
                        l = lRes;
                }
               
                public int sommeChiffres ()
                {
                        int somme = 0; int s = l.size();
                        for (int i=0 ; i<s ; ++i)
                                somme += l.get(i);
                        return somme;
                }
               
                public String toString ()
                {
                        String str = new String ();
                        for (int i=l.size()-1 ; i>=0 ; --i)
                                str += l.get(i);
                        return str;
                }
        };
       
        public static int sommeFactorielle (int n)
        {
                BigInt bn = new BigInt (n);
                for (int i=n-1 ; i>1 ; --i)
                        bn.fois (i);
                return bn.sommeChiffres ();
        }
       
        public static void main (String[] arg)
        {
                System.out.println (sommeFactorielle(100));
        }
};