写一个方法1000的阶乘

时间:2018-12-31 12:00:00 资料大全 我要投稿

写一个方法1000的阶乘

  答:C++的代码实现如下:

  #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的阶乘】相关文章:

1.学习英语的一个奇特方法

2.写磨练的优秀作文1000字

3.写抢红包的优秀作文1000字

4.写一个赞美秋天的句子

5.只有一个地球读后感1000

6.遇见另一个自己1000字

7.遇见另一个自己作文1000

8.写中文推荐信的思路方法