Dev - C++ - Necesito ayuda, es muy rápido y fácil

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda, es muy rápido y fácil

Publicado por Bryan (3 intervenciones) el 25/05/2019 20:18:52
Tengo este programa que consiste en El número de transiciones de una cadena binaria b1,b2,…,bNb1,b2,…,bN es el número de parejas bi,bi+1bi,bi+1 tales que bi≠bi+1bi≠bi+1. Por ejemplo, en la cadena 001011001011 existen tres transiciones: la cadena comienza con 00 y luego cambia a 11, luego cambia otra vez a 00 y luego cambia otra vez a 11. Escribe un programa que sume el número de transiciones que ocurren en las 2N2N cadenas binarias de longitud NN e imprima el valor de dicha suma.


Ya tengo el programa y si funciona bien, el caso es que si meto una n > 30, el programa ya no funciona correctamente y necesito que funcione para n < =50

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
 
//Funcion recursiva
int transacciones (int n){
 
    if (n == 0){
        return 0;
    }
else if (n == 1){
        return 0;
    }
else if (n == 2){
        return 2;
    }
    else if (n == 3){
        return 8;
    }
    else if (n == 4){
        return 16;
    }
else {
        return (2*transacciones(n-1));
    }
}
 
 
int main(){
 
	int n;
 
	std::cin>>n;
 
	std::cout<< transacciones(n);
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Necesito ayuda, es muy rápido y fácil

Publicado por Rodrigo (539 intervenciones) el 26/05/2019 17:57:10
Si tu problema es stack overflow, reemplaza la recursion por un ciclo.
Si tu problema es el tamano del numero, 2^50 no va a caber en un entero, intenta con un long, o long long.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar