将整数n分成k份,且每份不能为空,任意两种分法不能相同,问有多少种不同分法

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:59:25
需要PASCAL程序!急!

var
deep,u,last, n,k:integer;
total:longint;
procedure searth(u,last,deep:integer);
var
i:integer;
begin
if (deep=k) then begin total:=total+1; exit; end;
for i:=last to u div 2 do
searth(u-i,i,deep+1);
end;
begin
read(n,k);
searth(n,1,1);
writeln(total);
end.

#include <stdio.h>
int main()
{
int n,k,i,j,f[201][101]={0};
scanf("%d%d",&n,&k);//n=7.k=3
f[0][0]=1;
for(i=1;i<=n;i++)//n
for(j=1;j<=k;j++)//k
if(i>=j) f[i][j]=f[i-1][j-1]+f[i-j][j];
else f[i][j]=f[i-1][j];
printf("%d\n",f[n][k]);
return 0;
}
c语言的可以不?