求 1!+2!+3!....+n! 的 C++递归与非递归实现

来源:互联网 发布:算法导论第四章答案 编辑:程序博客网 时间:2024/06/05 14:33

本来很简单的一道题,笔试的时候就是脑袋僵掉了,居然传参的时候搞错了。

下面是正确的代码

#include "stdafx.h"#include<iostream>using namespace std;//递归函数long long  func(long long data, long long &sum){if (data == 1)return 1;long long temp = data*func(data - 1, sum);sum += temp;return temp;}//非递归函数void func1(long long data, long long &sum){for (long long i = 1; i <= data; ++i)sum *= i;long long temp = sum / data;while (--data){sum += temp;temp /= data;}}int main(){long long data;while (cin >> data){if (data < 1)continue;long long result = 1;//func(data, result); //递归实现func1(data, result);//非递归实现cout << result<<'\n';}    return 0;}


0 0