Comunidad PHPeros
Lenguajes => C / C++ => Mensaje iniciado por: albrandariz 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...
/* 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.