for循环对了,但当我再次尝试用while循环的时候就MLE(内存爆了)了。本地没啥问题。
#include<iostream> #include<bits/stdc++.h> using namespace std; long long fact(int x) { long long sum=1; while(x>1) { sum*=x; x--; } // for(int i=2; i<=x; i++) // { // sum*=i; // } return sum; } int main() { int n; cin>>n; cout<<fact(n); return 0; }