⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 facttest.cpp

📁 C++&datastructure书籍源码,以前外教提供现在与大家共享
💻 CPP
字号:
#include <iostream>using namespace std;#include "ctimer.h"#include "prompt.h"#include "bigint.h"BigInt RecFactorial(int num)// precondition: 0 <= num// postcondition: returns num! (num factorial){    if (0 == num)    {   return 1;    }    else    {   return num * RecFactorial(num-1);    }}BigInt Factorial(int num)// precondition: 0 <= num// postcondition: returns num! (num factorial)     {    BigInt product = 1;    int count;    for(count=1; count <= num; count++)    {   product *= count;    }    return product;}int main(){    CTimer rtimer,itimer;    long j,k;    BigInt rval,ival;    long iters = PromptRange("enter # of iterations",1L,1000000L);    int  limit = PromptRange("upper limit on factorial",10,100);        for(k=0; k < iters; k++)    // compute factorials specified # of times    {   for(j=0; j <= limit; j++)        {   rtimer.Start();                   // time recursive version            rval = RecFactorial(j);            rtimer.Stop();            itimer.Start();                   // time iterative version            ival = Factorial(j);            itimer.Stop();             if (rval != ival)                 // note any differences            {   cout << "calls differ for " << j << endl;                cout << "recursive = " << rval << " iterative = " << ival << endl;            }        }    }    cout << iters << " recursive trials " << rtimer.CumulativeTime() << endl;    cout << iters << " iterative trials " << itimer.CumulativeTime() << endl;    return 0;    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -