public void CalculoDeCollatz(int x, Collatz collatz)
        {
            int i;
            int numeroCalculado;
            int numeroInicial;
            int numeracaoRegressiva = x;

            while (numeracaoRegressiva > 1)
            {
                i = 0;
                numeroCalculado = numeracaoRegressiva--;
                numeroInicial   = numeroCalculado;

                while (numeroCalculado > 1)
                {
                    i++;
                    numeroCalculado = numeroCalculado % 2 == 0 ? numeroCalculado / 2 : 3 * numeroCalculado + 1;
                }

                if (i > _collatz.RetornaSequenciaMaior(collatz))
                {
                    collatz.numeroInicial  = numeroInicial;
                    collatz.sequenciaMaior = ++i;
                }
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            Collatz         collatz         = new Collatz();
            IServiceCollatz iServiceCollatz = new ServiceCollatz();
            ICollatz        iCollatz        = new RepositoryCollatz();

            iServiceCollatz.CalculoDeCollatz(1000000, collatz);
            Console.WriteLine("O numero inicial " + iCollatz.RetornaNumeroInicial(collatz) + " tem com maior sequencia de " + iCollatz.RetornaSequenciaMaior(collatz));
        }