题解 | n的阶乘
n的阶乘
https://www.nowcoder.com/practice/97be22ee50b14cccad2787998ca628c8
#include <iostream>
#include<vector>
#include<string>
using namespace std;
vector<int> multiply(vector<int>a, int b) {
vector<int>c;
int t = 0;//进位
//进位不为0时循环不能停,别忘了
for (int i = 0; i < a.size()||t; i++) {
if(i<a.size())
t += a[i] * b;
c.push_back(t % 10);
t /= 10;
}
return c;
}
int main() {
//高精度是倒着存
vector<int>a;
string str;
int n;
cin >> n;
// str=to_string(n);
// for(int i=str.size()-1;i>=0;i--){
// a.push_back(str[i]);
// }
a.push_back(1);
for (int i = n; i > 0; i--) {
a = multiply(a, i);
}
for (int i = a.size() - 1; i >= 0; i--)
cout << a[i];
}
// 64 位输出请用 printf("%lld")

查看5道真题和解析