Description
One company of IT City decided to create a group of innovative developments consisting from 5 to 7 people and hire new employees for it. After placing an advertisment the company received n resumes. Now the HR department has to evaluate each possible group composition and select one of them. Your task is to count the number of variants of group composition to evaluate.
Input
The only line of the input contains one integer n (7 ≤ n ≤ 777) — the number of potential employees that sent resumes.
Output
Output one integer — the number of different variants of group composition.
Sample Input
7
29
解体思路:对于组合数学问题,在计算时需要边乘分子,边除分母,否则会数据溢出,wa了三次,必须得记住了。
代码如下:
#include<stdio.h>
long long C(int n,int m){
long long ans=1;
int num=1;
while(m--){
ans*=(n-m);
ans/=num;//边乘边除 ,从小到大除 ,可以保证整除
num++;
}
return ans;
}
int main(){
int n,i;
long long sum;
while(scanf("%d",&n)!=EOF){
sum=0;
for(i=5;i<=7;i++){
sum+=C(n,i);
}
printf("%lld\n",sum);
}
return 0;
}