Programa de combinaciones ayuda plisss

Iniciado por Wolfillo, 22 Diciembre 2011, 17:05 PM

0 Miembros y 1 Visitante están viendo este tema.

Wolfillo

Hola si alguien puediera ayudarme con este programa , si las funciones que tengo echas no tienen fallos y algun consejito pa seguir que estoy atrancadisimo,el programa tiene que leer un numero hacerle el fatorial, el factorial descomponerlo en primos y estos primos ordenarlos por medio de la funcion multiplicar, y con la de dividir deberia quitar si no puse nada mal, los primos comunes en el denominador y numerador, dejo lo que llevo aca abajo un saludo y gracias de antemano.

Código (cpp) [Seleccionar]

#include <iostream>
#include <vector>
using namespace std;
//FUNCION QUE CALCULA EL FACTORIAL DE UN NUMERO QUE SE LE PASA POR PARAMETRO PERO SIN CALCULAR SU RESULTADO
vector<int> factorial(int &num)
{
   vector<int>fact;
   int cont;
   for (cont=1; cont<=num; cont++) fact.push_back(cont);
   return fact;
}
vector<int> descomponer(vector<int> &num)
{
   vector<int>primo;
   int factor=2;
   int num2;
   for(num2=0; num2<(int)num.size(); num2++) while (num.at(num2) >=2)
       {
           if (num.at(num2)%factor==0)
           {
               primo.push_back(factor);
               num.at(num2)/=factor;
               factor=2;
           }
           else if(num.at(num2)%factor!=0)
           {
               factor++;
           }
       }
   return primo;
}

vector<int> Multiplicar(vector<int>v1,vector<int>v2)
{
   vector<int>v3;
   int aux1=0,aux2=0;
   while (v1.size()>aux1 && v2.size()>aux2)
   {
       if(v1[aux1]<=v2[aux2])
           v3.push_back(v1[aux1]),aux1++;
       if (v2[aux2]<v1[aux1])
           v3.push_back(v2[aux2]),aux2++;
   }
   while (v1.size()<aux1)
   {
       v3.push_back(v1[aux1])
   }
   while (v2.size()<aux2)
   {
       v3.push_back(v2[aux2])
   }

   return v3;

}

void Dividir (vector<int>&num,vector<int>&dem)
{
   vector<int>saln;
   vector<int>sald;
   int var1,var2;
   while (num.size()>var1 && dem.size()>var2)
   {
       if(num[saln]<dem[var2])
           saln.push_back(num[var1]),var1++;
       if (dem[var2]<num[var1])
           sald.push_back(v2[aux2]),var2++;
       else
           var1++;
       var2++;

   }
   while (num.size()<var1)
   {
       saln.push_back(num[var1])
   }
   while (dem.size()<var2)
   {
       sald.push_back(dem[var2])
   }

   num=saln;
   dem=sald;
}


bool ComprobarM (vector<int>)
 {
     bool sar=true;
   for (int i=0; i<vector.size(); ++i)
   {
       int nuevo= vector[i]*i;
       if (nuevo/i== vector[i])
       cout

       else
       {
       sar=false;
       return sar;
       }
   }
 }

Ferno

Pon el código entre las etiquetas GeSHi y te ayudo con gusto. Explica mejor el problema también!

Wolfillo

como lo pongo entre las etiketas geshi?

Ferno

Podés modificar tu mensaje (es una opción arriba a la derecha de tu mensaje escrito). Cuando estés en el cuadro de texto, selecciona el código, y arriba a la derecha al lado de todo el formato de la fuente, ves un menú desplegable que dice "GeSHi". Seleccionas eso y el lenguaje en el que escribiste el código y listo.

Sagrini

#4

#include <stdio.h>

int fctrs (int n, int x [])
{
int a = n, i=1, cont=0;
x [cont] = 1; cont++;

for (i=2; i < n; i++)
while (a%i == 0) { a=a/i; x [cont] = i; cont++; }
x [cont] = 0;
return cont;
}


N es el número a descomponer. X es el vector en el que se almacenan los factores primos. Devuelve el número de factores primos (contando el 1).

Wolfillo

ok gracias ya lo vi , el programa debe hacer combinaciones con y sin repeticion usando esas funciones(si estan bien claro), y me pide que el numero n y k que son haga sus primos y los ordene ,sin usar metodos de ordenacion o de la burbuja y los guarde en un vector al que luego le hare el factorial , y la de division para es para mostrar en pantalla el resultado del numerador y denominador, simplificando los primos comunes de ambos

Sagrini

Cita de: Wolfillo en 22 Diciembre 2011, 17:19 PM
ok gracias ya lo vi , el programa debe hacer combinaciones con y sin repeticion usando esas funciones(si estan bien claro), y me pide que el numero n y k que son haga sus primos y los ordene ,sin usar metodos de ordenacion o de la burbuja y los guarde en un vector al que luego le hare el factorial , y la de division para es para mostrar en pantalla el resultado del numerador y denominador, simplificando los primos comunes de ambos

No he leído tu código, pero el mío te descompone un número en factores primos (ordenados de menor a mayor, incluyendo el 1), y te los guarda en un factorial. Pregunta: ¿Para qué asignatura es el trabajo, y en qué año estás?

Wolfillo

Cita de: Sagrini en 22 Diciembre 2011, 17:21 PM
No he leído tu código, pero el mío te descompone un número en factores primos (ordenados de menor a mayor, incluyendo el 1), y te los guarda en un factorial. Pregunta: ¿Para qué asignatura es el trabajo, y en qué año estás?

si lei tu código mas o menos es como el que tengo puesto de primos, estoy en primero del grado de informática y la asignatura es fundamentos de programación.