原文:
给定两个数字 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
麻将胡了pg电子网站的版权属于:月萌api www.moonapi.com,转载请注明出处