牛客IOI周赛16-普及组-求导

求导

http://www.nowcoder.com/questionTerminal/7adb246544fb44f09e8758fc0566d54a

关于这道题目,我们可以分三种情况讨论:


  1. 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;
}
全部评论
这道题大佬是怎么判断不是高精的呀
点赞 回复
分享
发布于 2020-05-02 09:03

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务