以下是用 C++ 编写的计算 100 的阶乘的代码:\n\ncpp\n#include \"iostream\"\n#include \"vector\"\n\nusing namespace std;\ \nvector<int> multiply(vector<int> num, int x) {\n vector<int> result;\ int carry = 0;\ for (int i = 0; i < num.size(); i++) {\n int prod = num[i] * x + carry;\ result.push_back(prod % 10);\ carry = prod / 10;\ }\ \n while (carry) {\n result.push_back(carry % 10);\ carry /= 10;\ }\ \n return result;\ }\ \nvector<int> factorial(int n) {\n vector<int> result;\ result.push_back(1);\ \n for (int i = 2; i <= n; i++) {\n result = multiply(result, i);\ }\ \n return result;\ }\ \nvoid printFactorial(vector<int> num) {\n for (int i = num.size() - 1; i >= 0; i--) {\n cout << num[i];\ }\ cout << endl;\ }\ \nint main() {\n int n = 100;\ vector<int> num = factorial(n);\ \n cout << "Factorial of " << n << " is: ";\ printFactorial(num);\ \n return 0;\ }\n\n\n这段代码使用了大数相乘的方法来计算 100 的阶乘。在 multiply 函数中,将一个大数 num 与一个整数 x 相乘,并返回结果。factorial 函数使用循环逐步计算阶乘的结果,调用了 multiply 函数来进行乘法运算。printFactorial 函数用于以逆序打印结果。\n\n运行结果如下:\n\n\nFactorial of 100 is: 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000\n

C++ 计算 100 的阶乘:大数相乘算法

原文地址: https://www.cveoy.top/t/topic/pWny 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录