es un pequeño ejercicio pareciera muy simple pero al final fue mas de lo que pensé, supongan que tienen un conjunto (dado por el usuario) que consta de 1 hasta n(dato del usuario), la serie va aumentando de uno en uno, y cuando llega al tope de la serie a esta se le "eliminan" los últimos 2 elementos y se le aumenta uno al elemento anterior al tope de la serie así hasta que el primer numero llegue a ser el tope. les adjunto una imagen de ejemplo de como sería si el tope o conjunto fuera 5 ojalá me explique y puedan ayudarme.
Código:
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
main ()
{
int n,j=0,k=0,l=1;
cout << "Ingresa el ultimo numero del conjunto: ";
cin >> n;
int a[n],o[n];
for (int i=0;i<n;i++)
{
a[i]=i+1;
}
while (a[0]!=n+1)
{
for (k=0;k<l;k++)
{
if (a[k]==n)
{
cout << a[k];
l-=2;
a[k-1]+=1;
a[k]=a[k-1];
}
else if (a[k]<n)
{
cout << a[k];
}
}
if (l<n)
{
l++;
}
cout << endl;
}
}
Como ven CASI logro hacerla pero me salen números de más.







Autor


En línea
