1

我正在尝试将 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;
    }
}
4

0 回答 0