初学者适用的一个题解(可抄),比较特别
2026-10-07 16:26:56
发布于:陕西
10阅读
0回复
0点赞
咱们只要直接用 for循环 if-else 分支就行
(虽然用for代码更短,但时间复杂度比循环的On小,只有O¹,只要你不嫌烦) 若嫌烦,请看下面(再往下看)


可直接抄答案->
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
if(n==0) cout<<1;
else if(n==1) cout<<1;
else if(n==2) cout<<2;
else if(n==3) cout<<6;
else if(n==4) cout<<24;
else if(n==5) cout<<120;
else if(n==6) cout<<720;
else if(n==7) cout<<5040;
else if(n==8) cout<<40320;
else if(n==9) cout<<362880;
else if(n==10) cout<<3628800;
else if(n==11) cout<<39916800;
else if(n==12) cout<<479001600;
else if(n==13) cout<<6227020800;
else if(n==14) cout<<87178291200;
else if(n==15) cout<<1307674368000;
return 0;
}
(无缩进版)☟
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
if(n==0) cout<<1;
else if(n==1) cout<<1;
else if(n==2) cout<<2;
else if(n==3) cout<<6;
else if(n==4) cout<<24;
else if(n==5) cout<<120;
else if(n==6) cout<<720;
else if(n==7) cout<<5040;
else if(n==8) cout<<40320;
else if(n==9) cout<<362880;
else if(n==10) cout<<3628800;
else if(n==11) cout<<39916800;
else if(n==12) cout<<479001600;
else if(n==13) cout<<6227020800;
else if(n==14) cout<<87178291200;
else if(n==15) cout<<1307674368000;
return 0;
}
用计算器手算的,100%
第二种解法,若嫌烦,可看此
#include <bits/stdc++.h>
using namespace std;
int main(){
int n ,sum = 1;
cin >> n;
for (int i = 1 ; i <= n ; i++) //n! = 1*2*3* ··· *(n-1)*n
sum *= i; //sum乘以i,i从1一直增加到n
cout << sum;
return 0;
}
第三种解法,比较专业,需要学过一段时间,递推算法
#include <bits/stdc++.h>
using namespace std;
int f(int n) {
if(n==0) return 1; //终止条件
return f(n-1)*n; //递推式
}
int main() {
int n;
cin >> n;
cout << f(n);
return 0;
}
..........................................................................................................⇩⇩⇩⇩⇩.........................................................................................................
这里空空如也








有帮助,赞一个