Академический Документы
Профессиональный Документы
Культура Документы
#include <iostream>
using namespace std;
long long sumatoria(int n);//primero declaro la funcion globamente
int main()
{
int n;
cin >> n;
cout << sumatoria(n) << endl;// imprimo el retorno de la funcion sumatoria
return 0;
}
//...............
long long sumatoria(int n)// funcion sumatoria
{
int t_sig = 0;
if (n == 0) // caso base
{
return 1;
}
for (int k = 0; k<n; k=k+1)// sumatoria
{
t_sig =t_sig + sumatoria(k)*sumatoria(n-1-k);//recurrencia
}
return t_sig;
}
cout<<endl;
return 0;
}
resolver_n_alfiles(n, k);//salida
}
}
}
}
}
}
if (cont==0){//si no existen posibilidades imprime imposible
cout<<"imposible";
}
cout<<endl<<endl;
}
//............
int primos(int x)//funcion para definir los primos
{
int i=2;// inicio de los numeros primos y cantidad de divisores de un numero primo
while (i<x)// primos existentes hasta el numero de entrada
{
if ((x%i)==0)//para conocer los divisores
break;
++i;
}
if (i==x)//si la cantidad de divisores es 2 significa que es primo
return(0);// retorna que es primo
else
return(1);//retorna que no es primo
}
5) Dado un numero N, escriba todas las posibles formas en las que puedo
llegar a N sumando nmeros positivos (en este caso tambin cuente el 0)
menores a l.
#include <iostream>
using namespace std;
void sumandos(int ult,int a[1000],int N,int sum);//declaramos la funcion
int main ()
{
int a[1000],N, sum = 0;
cin>>N;// ingresamos el numero
sumandos(1,a,N,sum);
return 0;
}
int nelem;
void sumandos(int ult,int a[1000],int N,int sum)
{
if (sum == N)//imprime las particiones
{
for (int i = 0 ; i < nelem; i++)
cout << a[i]<<" + " ;
cout << "0" <<endl;
return ;
}
for ( int i = ult ; i <= N - sum ; i++)//por particiones (teoria de numeros)
{
sum = sum + i;
a[nelem++] = i;
sumandos(i,a,N,sum);
sum -= i;//se deja igual q en un principio
nelem--;
}
}