员工考勤记录

正文索引 [隐藏]

题目描述:

给定一个字符串来代表一个员工的考勤纪录,这个纪录仅包含以下两个字符:
‘A’ : Absent,缺勤
‘P’ : Present,到场
如果一个员工的考勤纪录中不超过两个’A'(缺勤),那么这个员工会被奖赏。
如果你作为一个员工,想在连续N天的考勤周期中获得奖赏,请问有多少种考勤的组合能够满足要求

输入描述:

考勤周期的天数N(正整数)。

输出描述:

这N天里能获得奖赏的考勤组合数。

输入样例:

3

输出样例:

7

解题思路:

招银网络校招,简单的排列组合问题。这题的本质就是求出\inline {\color{Cyan} C_{n}^{2}+C_{n}^{1}+C_{n}^{0}}的值。

AC代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int n;    //考勤周数的天数N
    cin >> n;
    if(n == 1) cout << 1 << endl;
    else   //Cn2+cn1+cn0
    {
        cout << n*(n-1)/2+n+1 << endl;
    }
    return 0;
}