求数n的K划分C语言

来源:百度知道 编辑:UC知道 时间:2024/07/05 15:08:51
Description

将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。
例如:n=7,k=3,下面三种分法被认为是相同的。
1,1,5; 1,5,1; 5,1,1;
问有多少种不同的分法。

Input

n,k (6<n<=200,2<=k<=6)

Output

一个整数,即表示有多少种不同的分法。

Sample Input

7 3

Sample Output

4

Hint

输入: 7 3
输出:4 {四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;}

Source

#include <stdio.h>
void main()
{
int x, y;
for (x = 1; x < 17; x++)
for (y = 1; y < 25; y++)
if ((3 * x + 2 * y + (30 - x - y) == 50) && (x + y) < 30)
{
printf("x=%d,y=%d,z=%d\n", x, y, (30 - x - y));
break;
}
}
这个不是百钱百鸡题目的盗版吗 ??
设男人x人、女人y人和小孩z人
3x+2y+z=50 ①
x+y+z=30 ②
①-② 2x+y=20 y=20-2x
①-②*2 x+z=-10 z=-10-x
x+y+z=x+20-2x-10-x=10-2x=30
x=-10 y=40 z=0
设男人x人、女人y人和小孩z人
3x+2y+z=50 ①
x+y+z=30 ②
①-② 2x+y=20 y=20-2x
2x+20-2x+z=30
z=10
x+y=20
2x+y=x+y
2x=x
x=0
y=20
所以z=10 x=0 y=20