#include <iostream>
#include <stdlib.h>
using namespace std;
int Factorial(int nf);
int SumaFactorial();
char n[20];
int main()
{
char bckup[20];
int Suma;
cout << "Introduzca el numero: ";
cin >> n;
strcpy(bckup, n);
Suma = SumaFactorial();
if (Suma) {
cout << "La suma de los factoriales de los digitos de " <<
bckup << " es " << Suma << "." << endl << endl;
}
system("pause");
return 0;
}
int Factorial(int nf) {
if(nf < 0) return 0;
if(nf > 1) return nf * Factorial(nf-1);
return 1;
}
int SumaFactorial() {
int nActual, FactActual, i;
nActual = FactActual = i = 0;
while (n[i] != '\0') {
nActual = n[i] - 0x30;
if ( (nActual >= 0) && (nActual <= 9) ){
n[i] = 254;
FactActual += Factorial(nActual);
} else if (nActual == 254){
continue;
} else if ( (n[i] != '\0')) {
return 0;
}
i++;
}
return FactActual;
}
Obtener la suma de los factoriales de todos los dígitos de un número
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.