簡體   English   中英

查找所有3位數字的可用組合

[英]Find all available combinations of 3 digits

請幫助我了解如何檢查我是否有相同的號碼,但順序不同。

void ft_print_comb(void)
{    
    int hun;
    int doz;
    int uni;

    hun = 0;
    doz = 1;
    uni = 2;

    solver(hun, doz, uni);
}
void print( char f, char se, char thi)
{
    ft_putchar(f);
    ft_putchar(se);
    ft_putchar(thi);
    ft_putchar(',');
}
void solver(int x, int y, int z)
{
    while (x < 9){    
        while (y<8){    
            while (z<7){    
                if (x < y && y < z ){
                    print(x, y, z);
                }
                z++;
            }
            y++;
        }
        x++;
    }
}

創建一個函數,以升序顯示三個不同數字的所有不同組合,並按升序列出-是的,重復是自願的。

012, 013, 014, 015, 016, 017, 018, 019, 023, ..., 789

987不存在,因為789已經存在。 999不存在,因為數字9多次出現。

最簡單的方法是確保您永遠不要構造這樣的重復數字。 這是一個例子:

int main(void){
    int i, j, k;
    for (i = 0; i <= 9; i++) {
        for (j = i+1; j <= 9; j++) {
            for (k = j+1; k <= 9; k++) {
                printf("%d%d%d\n", i, j, k);
            }
        }
    }
}

在上面的示例中,您將以相同的順序擁有所有非重復數字的可能組合。 它將始終保證i <j <k;

您可能還會找到其他方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM