当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 5.9 编程练习题 第2题 使用array对象计算阶乘

C++ Primer Plus 6th 5.9 编程练习题 第2题 使用array对象计算阶乘

更新时间:2019-04-28 08:46:24浏览次数:1+次

题目:
2.使用array对象(而不是数组)和long double(而不是long long)重新编写程序清单5.4,并计算100!的值。
程序清单5.4如下:

#include <iostream>
const int ArSize = 16;
int main()
{
    long long factorials[ArSize];
    factorials[1] = factorials[0] = 1LL;
    for (int i=2;i<ArSize;i++)
        factorials[i] = i * factorials[i-1];
    for(int i=0;i<ArSize;i++)
        std::cout<<i<<"! = " <<factorials[i]<<std::endl;
    return 0;
}

答案:  书上无答案。


C++技术网辅导详解解答:
    参考源码:

#include <iostream>
#include <array>
using namespace std;
const int ArSize = 100;
int main()
{
    array<long double, ArSize> factorials;
    factorials[1] = factorials[0] = 1LL;
    for (int i = 2; i < ArSize; i++)
        factorials[i] = i * factorials[i - 1];
    for (int i = 0; i < ArSize; i++)
        std::cout << i << "! = " << factorials[i] << std::endl;
    return 0;
}

    此题主要是array的运用。