原文:

给定两个数字 m 和 n,任务是找出包括 m 和 n 在内的所有数字的阶乘,然后以下面的格式打印。 例:

input : 6 10
output :
     720
    5040
   40320
  362880
 3628800
input : 10 20
output :
             3628800
            39916800
           479001600
          6227020800
         87178291200
       1307674368000
      20922789888000
     355687428096000
    6402373705728000
  121645100408832000
 2432902008176640000

我们使用 boost 多精度库存储大数的阶乘,并使用 setw()函数打印阶乘。 setw(int)->setw(int)是一个用于结果中意图的函数。

c

// cpp program to print format of factorial
#include 
#include 
#include 
using namespace std;
using boost::multiprecision::cpp_int;
vector find_factorial(int num1, int num2)
{
    // vector for store the result
    vector vec;
    // variable for store the
    // each number factorial
    cpp_int fac = 1;
    // copy of first number
    int temp = num1;
    // found first number factorial
    while (1) {
        if (temp == 1)
            break;
        fac *= temp;
        temp--;
    }
    // push the first number in result vector
    vec.push_back(fac);
    // incerement the first number
    num1  ;
    // found the all reaming number
    // factorial loop is working until
    // all required number factorial founded
    while (num1 <= num2) {
        fac *= num1;
        // store the result of factorial
        vec.push_back(fac);
        // incerement the first number
        num1  ;
    }
    // return the result
    return (vec);
}
// function for print the result
void print_format(vector& result)
{
    // setw() is used for fill the blank
    // right is used for right justification of data
    int digits = result.back().str().size();
    for (int i = 0; i < result.size(); i  ) {
         cout <<  setw(digits   1) << 
                    right << result[i] <<  endl;
    }
}
// driver function
int main()
{
    // number which found the factorial
    // of between range
    int m = 10, n = 20;
    // store the result of factorial
    vector result_fac;
    // function for found factorial
    result_fac = find_factorial(m, n);
    // function for print format
    print_format(result_fac);
    return 0;
}

服务器端编程语言(professional hypertext preprocessor 的缩写)


java 描述语言


输出:

             3628800
            39916800
           479001600
          6227020800
         87178291200
       1307674368000
      20922789888000
     355687428096000
    6402373705728000
  121645100408832000
 2432902008176640000