您的位置:首页 > 其它

2017 山东理工第九届校赛 A N!(神坑)

2017-06-04 18:19 369 查看
传送门:点击打开链接


N!

Time Limit: 1000MS Memory Limit: 65536KB

Submit Statistic


Problem Description

给出两个数 n, m。求 

 和 


计算公式:




Input

输入数据有多组(数据组数不超过 250),到 EOF 结束。
对于每组数据,输入两个用空格隔开的整数 n, m (0 <= m <= n <= 20) 。


Output

对于每组数据输出一行, 

 和 




Example Input

1 1
20 1
20 10



Example Output

1 1
20 20
670442572800 184756



Hint

请注意数据范围,可能需要使用 long long 等 64 位整型。

大水题,一开始输出的地方让输出case #:,交了wa,然后改题面,不输出。。。。就这样被罚时,无fuck说。

代码实现:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>

using namespace std;

long long sum1,sum2;
void find(int m,int n)
{
int i,j,k;
long long count1=1,count2=1,count3=1;

for(i=1;i<=n;i++)
count1*=i;

for(i=1;i<=m;i++)
count2*=i;

for(i=1;i<=(n-m);i++)
count3*=i;

sum1=count1/count3;
sum2=count1/(count2*count3);
}

int main()
{
int m,n,flag=1;

while(scanf("%d%d",&n,&m)!=EOF)
{
find(m,n);

cout<<sum1<<' '<<sum2<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: