给定正整数n,计算出n个元素的集合{1,2,....,n}能够划分为多少个不同的非空集合
附源码:
#include<iostream>
using namespace std;
int F(int n,int m)
{
if(n<=2)
return 1;
if(m==1||n==m)
return 1;
else
return F(n-1,m-1)+m*F(n-1,m);
}
void main()
{
int n;
char end;
int result = 0;
cout<<"请输入正整数n=";
cin>>n;
for(int i=1;i<=n;i++)
{
result = result+F(n,i);
}
cout<<n<<"个元素可划分的非空集合有"<<result<<"个"<<endl;
cout<<"请随意输入一个字符按回车结束";
cin>>end;