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