C语言编程的acm的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 23:45:28
UHA的要开运动会了,学校为入场式上的A方阵准备了道具。为了突出多样性,每个方阵成员将拿不同的道具入场。已知方阵由n(1<=n<=20)个人组成,学校恰好也准备了n个互不相同的道具。为了研究这些道具共有多少种分配方案,学校找到了你这个“计算机专家”。

Input

输入包括多组数据。
每行包括1个数据:n。
n是整数,且1<=n<=20。
处理到文件结束为止。

Output

每组数据的输出都只有一行,为分配方案的种数。

//排列问题。
#include<stdio.h>
#include<vector>
#include<fstream>
using namespace std;
void main()
{
vector<int>a;
int i=0,sum=1,temp,count=0;
ifstream fin("hello.txt");
if(!fin)
{
printf("open failed!\n");
return;
}
while(fin>>temp)
{
a.push_back(temp);
count++;
}
for(i=0;i<count;i++)
{
for(int j=1;j<=a[i];j++)
sum*=j; //排列
printf("i=%d sum=%d\n",a[i],sum);
sum=1;
}
fin.close();
}

我觉得这是个概率统计问题