Ad esempio, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800
e la somma delle cifre nel numero 10! è 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27.
Trova la somma delle cifre nel numero 100!
codice:
#include <iostream>
#include <string>
using namespace std;
int main()
{
double risultato=1;
int array[1000];
unsigned long long somma = 0;
cout << "Wait! " << endl;
for (int i = 1; i <= 100; ++i)
{
risultato = risultato * i;
}
string risultato1 = to_string((double)risultato);
string carattere;
int lunghezza = risultato1.size();
int lunghezza1 = risultato1.size();
string part = risultato1.substr(0, lunghezza - 7);
int lunghezza2 = part.size();
cout << "Il risultato e': " << risultato << endl;
cout << "Il risultato e': " << part << endl;
cout << "La lunghezza della stringa e' :" << lunghezza2 << endl;
for (int y = 0; y <= lunghezza2-1; y++)
{
carattere = part.at(y);
array[y] = stoi(carattere);
somma = somma + array[y];
}
cout << "La somma fattoriale e': " << somma << endl;
system("pause");
}
La logica del programma è corretta, ma il risultato è sbagliato, mi risulta 683 anziché di 648
Non capisco l'errore 