题目难度:一星
考察点:组合数学
方法:组合数学
1.分析:
对于这个题来说,一个员工可以缺勤不超过两天,那么就有如下三种情况:
a. 缺勤0天
b. 缺勤1天
c. 缺勤2天
那么我们只需要将上述三种情况的方法数加起来就可以了,即ans = f(a)+f(b)+(c)。
假设员工缺勤了x天,根据组合数学,那么缺勤x天的方法数就有C(n,x),即从n天中选x天进行缺勤。所以我们根据上述三种情况,就是相当于求当x=0,1,2的情况下C(n,x)的和,即ans=C(n,0)+C(n,1)+C(n,2)。其中C(n,0)=1, C(n,1)=n, C(n,2)=n*(n-1)/2,所以就是输出ans=1+n+n*(n-1)/2。
算法实现:(1). 输入一个数n
(2). 根据上述组合数徐的计算方法,直接输出答案即可。
2.复杂度分析:
时间复杂度:O(1)空间复杂度:O(1)
3.代码:
#include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; cout<<1+n+n*(n-1)/2<<endl; return 0; }