我正在尝试将 Python 生成器转换为 C 中的函数。如果值得一提,我正在尝试编写一个程序,将整数 n 划分为 l 个不同的部分。我相信我已经完成了大部分工作,我不知道如何实现产量。这是发电机
def ruleAscLen(n, l):
a = [0 for i in range(n + 1)]
k = 1
a[0] = 0
a[1] = n
while k != 0:
x = a[k - 1] + 1
y = a[k] - 1
k -= 1
while x <= y and k < l - 1:
a[k] = x
y -= x
k += 1
a[k] = x + y
yield a[:k + 1]
这就是我到目前为止所拥有的
void ruleAscLen(int n, int l)
{
int a[n+1];
int k = 1;
a[0] = 0;
a[1] = n;
while(k != 0)
{
int x = a[k - 1] + 1;
int y = a[k] - 1;
k -= 1;
while(x <= y && k < l-1)
{
a[k] = x;
y -= x;
k++;
}
a[k] = x + y;
}
}