Autor Tema: Numeros combinatoria  (Leído 3362 veces)

Desconectado albrandariz

  • PHPer@ Fijo
  • ***
  • Mensajes: 180
  • Karma: 2
  • Sexo: Masculino
    • Ver Perfil
    • Gritos De Mimo
Numeros combinatoria
« en: 01 de Diciembre de 2009, 13:33:17 pm »
os dejo aki el programa para hacer la combinatoria de dos numero.
atencion: estos datos estan "capados" por la longitud de los valores int, por eso no admite numeros grandes, este codigo es solo un ejemplo que sirbe para el uso de funciones, algunas operaciones sencillas matematicas...

Código: [Seleccionar]
/* Nombre: Alvaro Brandariz Gil
   Programa:factorial
   Descripcion: numeros factoriales
   Fecha:30/11/09
*/
#include <stdio.h>
#include <conio.h>

//incluimos las funciones
int combinatoria(int,int);
int pulsatecla();

           
int main()
{
//declaramos 3 variables de tipo enteras, (en mi compilador de 4 bytes cada una)
int n,k;
int total;
//introduccion de valores con scanf. se guardan en las direcciones de memoria de n y k de ahi el "&".
printf("Introduce el valor n: ");
scanf("%i",&n);

printf("Introduce el valor k: ");
scanf("%i",&k);

//guardamos en total la operacion de combinatoria de n y k
total=combinatoria(n,k);

//si el resultado es=0 es que algun numero es erroneo y saldria 0.0000 asi que se muestra error
if(total==0){printf("Error, algun numero es muy grande para el int o tiene valor negativo");}
else{printf("La combinatoria es: %d",total);}


  pulsatecla();
}

//declaracion de funciones:

//funcion para salir del programa
int pulsatecla()
{
            printf("\nPulsa una tecla");
            getch();
            }

//funcion para calcular el numero factorial
int factorial(int n){
    int i,factor=1;
    for(i=1;i<n+1;i++){factor=factor*i;}
    return (factor);
}
//funcion para la combinatoria
int combinatoria(int n,int k){
    int factorial(int);
    int total;
    total= factorial(n)/(factorial(k)*(factorial(n-k)));
    return (total);
}


un saludo y si teneis alguna duda no dudeis en preguntar.

Comunidad PHPeros

Numeros combinatoria
« en: 01 de Diciembre de 2009, 13:33:17 pm »