- 相關推薦
寫一個方法1000的階乘
答:C++的代碼實現(xiàn)如下:
#include
#include
#include
using namespace std;
class longint {
private:
vector iv;
public:
longint(void) { iv.push_back(1); }
longint& multiply(const int &);
friend ostream& operator<<(ostream &, const longint &);
};
ostream& operator<<(ostream &os, const longint &v) {
vector::const_reverse_iterator iv_iter = v.iv.rbegin();
os << *iv_iter++;
for ( ; iv_iter < v.iv.rend(); ++iv_iter) {
os << setfill(’0′) << setw(4) << *iv_iter;
}
return os;
}
longint& longint::multiply(const int &rv) {
vector::iterator iv_iter = iv.begin();
int overflow = 0, product = 0;
for ( ; iv_iter < iv.end(); ++iv_iter) {
product = (*iv_iter) * rv;
product += overflow;
overflow = 0;
if (product > 10000) {
overflow = product / 10000;
product -= overflow * 10000;
}
iv_iter = product;
}
if (0 != overflow) {
iv.push_back(overflow);
}
return *this;
}
int main(int argc, char **argv) {
longint result;
int l = 0;
if(argc==1){
cout << “like: multiply 1000″ << endl;
exit(0);
}
sscanf(argv[1], “%d”, &l);
for (int i = 2; i <= l; ++i) {
result.multiply(i);
}
cout << result << endl;
return 0;
}
【寫一個方法1000的階乘】相關文章:
學習英語的一個奇特方法08-03
遇見另一個自己作文100008-07
遇見另一個自己1000字08-17
遇見另一個自己1000字作文07-31
遇見另一個自己作文1000字08-05
1000字曠課檢討書怎么寫04-19
最新遇見另一個自己作文1000字10-09
讀書筆記怎么寫格式方法05-30
1000字檢討書怎么寫(精選5篇)06-01
寫一個贊美秋天的句子09-03