Ir ao conteúdo

C# Problema com recursividade no C#


Ir à solução Resolvido por Ansi C,

Posts recomendados

Postado

Estou fazendo um exercício que faça eu mostrar o resultado de uma fatorial inserida pelo usuário usando recursividade, mas o valor de x que é o resultado sempre esta dando zero.

 

Código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {

        class Coisa
        {
            public int x;
            int Fibo(int a)
            {
                
                Console.WriteLine(a + " " + x);

                if (a > 1)
                {


                   x = a * Fibo(a - 1);

                }
                return x;
              
            }



            static void Main()
            {
                
                string c;
                int b;
                int a;
                
                Console.WriteLine("Insira um número para ver sua fatoração");
                c = Console.ReadLine();
                a = Convert.ToInt32(c);
                Coisa coisa = new Coisa();


                coisa.Fibo(a);
                Console.WriteLine("A Fatorial de " + a + " é " + coisa.x);
                Console.ReadLine();

            }
        }
       
        
    }
}

 

  • Solução
Postado
2 horas atrás, Ricardo Santos458 disse:

Esestou fazendo um exercício que faça eu mostrar o resultado de uma fatorial inserida pelo usuário usando recursividade, mas o valor de x que é o resultado sempre esta dando zero.

Você somente precisa iniciar a variável x, atribuindo 1 pra ela.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{ class Program
  { class Coisa
    { int x= 1;
      int Fibo( int a )
      { if( a > 1 )
        { x= a * Fibo( a - 1 ); }
        Console.WriteLine( a + " " + x );
        return x;
      }
    static void Main()
    { string c;
         int a;

      Console.WriteLine( "Insira um número para ver sua fatoração" );
      
      c= Console.ReadLine();
      a= Convert.ToInt32( c );
      
      Coisa coisa = new Coisa();
      
      coisa.Fibo( a );
      Console.WriteLine( "A Fatorial de " + a + " é " + coisa.x );
      Console.ReadLine();
   }}}
}

 

  • Curtir 1
Postado
Em 01/11/2018 às 20:52, AnsiC disse:
Spoiler

Você somente precisa iniciar a variável x, atribuindo 1 pra ela.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{ class Program
  { class Coisa
    { int x= 1;
      int Fibo( int a )
      { if( a > 1 )
        { x= a * Fibo( a - 1 ); }
        Console.WriteLine( a + " " + x );
        return x;
      }
    static void Main()
    { string c;
         int a;

      Console.WriteLine( "Insira um número para ver sua fatoração" );
      
      c= Console.ReadLine();
      a= Convert.ToInt32( c );
      
      Coisa coisa = new Coisa();
      
      coisa.Fibo( a );
      Console.WriteLine( "A Fatorial de " + a + " é " + coisa.x );
      Console.ReadLine();
   }}}
}

 

Caraca é mesmo '-'. Valeu ajuda ae man.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...