मैं बड़े फैक्ट्रोरियल (100 जितनी बड़ी संख्या) की गणना के लिए निम्नलिखित कार्यक्रम में आया हूं .. क्या कोई मुझे इस एल्गोरिदम में उपयोग किए जाने वाले मूलभूत विचार को समझा सकता है ?? मुझे फैक्टरियल की गणना करने में लागू गणित को जानने की आवश्यकता है।क्या कोई बड़े कारखानों की गणना के लिए इस एल्गोरिदम को समझा सकता है?
#include <cmath>
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
unsigned int d;
unsigned char *a;
unsigned int j, n, q, z, t;
int i,arr[101],f;
double p;
cin>>n;
p = 0.0;
for(j = 2; j <= n; j++)
p += log10(j);
d = (int)p + 1;
a = new unsigned char[d];
for (i = 1; i < d; i++)
a[i] = 0; //initialize
a[0] = 1;
p = 0.0;
for (j = 2; j <= n; j++)
{
q = 0;
p += log10(j);
z = (int)p + 1;
for (i = 0; i <= z/*NUMDIGITS*/; i++)
{
t = (a[i] * j) + q;
q = (t/10);
a[i] = (char)(t % 10);
}
}
for(i = d -1; i >= 0; i--)
cout << (int)a[i];
cout<<"\n";
delete []a;
return 0;
}
आप एल्गोरिथ्म भर में कहाँ से आया प्रिंट आउट? आपको हमेशा उचित जानकारी देने के लिए इस जानकारी को शामिल करना चाहिए, लेकिन यह प्रश्न का उत्तर देने में सहायक भी हो सकता है। –
स्कूल होमवर्क, है ना? – Francis
यदि यह एक अंतिम उदाहरण नहीं है कि पठनीय कोड लिखना क्यों एक बड़ा बोनस है, तो मुझे नहीं पता कि क्या है। यह कोड एक स्पष्टीकरण के लायक नहीं है, यह एक पुनर्लेखन के लायक है। –