📄 facttest.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 + -