ACM2 递归 n分成k份

//将n 分成k份的 分法总数
#include "stdafx.h"
#include"stdio.h"
#include
using  namespace std;
int f(int n,int k)
{
	if (k == 2) return n / 2;
	else
	{
		int s = 0;
		for (int i = 1; i <= n / k; i++)//第一份初始值i
			s = s + f(n - (i - 1)*k - 1, k - 1);//下一步将n-i-(k-1)*(i-1)分成k-1份
		return s;
	}
}
int main()
{

	cout << f(7,3);
	return 0;
}

你可能感兴趣的:(算法,递归)