一道很水的循环题

首先:

特判0 (你想不特判也不是不行,也能对)

if(n==0){
    cout<<1;
    return 0;
}

再看正常情况: 可以看出,如果n是奇数,就把不大于n的所有奇数相乘,如果n是偶数,就把不大于n的所有偶数相乘

也就是说:

将1~n中与n奇偶性相同的数相乘

由此得代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n,ans=1; //不开long long见祖宗
    cin>>n;
    if(n==0){ //这里其实特不特判都行
        cout<<1;
        return 0;
    }
    for(int i=1;i<=n;i++){
        if(i%2==n%2){ //判断奇偶性相同
            ans*=i;
        }
    }
    cout<<ans;
    return 0; //好习惯
}

2 条评论

  • @ 2024-2-7 14:39:08

    有实力*2

    • @ 2024-1-27 23:41:33

      有实力

      • 1