关于这道题目,我们可以分三种情况讨论:
当n处于第一种情况时,我们直接输出0就可以了(似乎题目没有给出n是否小于等于0的限制)。
当n处于处于第二种情况时,1 - 1 = 0,我们直接输出1就可以了。
当n处于第三种情况时,我们就要进行推导了,这玩意其实就是个阶乘
只要n大于等于2,从2开始求导一直求导到n,求导n-1次,那么最后一次求导所乘的都是2。
所以代码很容易就能写出来啦。
#include <iostream>
#include <cstdio>
using namespace std;
const long long mod = 1000000007;
int main(){
long long n;
cin >> n;
if(n <= 0) cout << 0 << endl;
if(n == 1) cout << 1 << endl;
long long sum = 1;
for(int i = 2; i <= n; i++){
sum = (sum % mod * i) % mod;
}
cout << sum % mod << endl;
return 0;
} 
京公网安备 11010502036488号