这边博客对于整数划分问题,仅仅要求求出对于每个整数可以划分的种类数,採用金典的递归的办法解决。
#include<iostream> using namespace std; /* *整数划分问题(仅仅显示种类数) */ int GetIntDivision(int n,int m) { if(n==1&&m>=1) return 1; if(n>=1&&m==1) return 1; if(m>n) return GetIntDivision(n,n); if(n==m) return (1+GetIntDivision(n,n-1)); return GetIntDivision(n,m-1)+GetIntDivision(n-m,m); } int main() { int a; cin>>a; cout<<a<<"的整数划分问题共同拥有: "<<GetIntDivision(a,a)<<"种!"<<endl; return 0; }