回覆列表
  • 1 # 使用者990540253822

    /*

    既然你的問題分類是程式語言,想必你是想透過程式輸出你要的結果,那麼最簡單的C就能實現你想要的功能。下面這個就是你所需要的效果,為了能夠便於我們複製輸出結果,我們將顯示結果輸入到檔案中,路徑預設是D:\,檔名為a.txt,同時統計出所有組合的數目。如果需要顯示更多數字的組合可能,可以選擇修改list[]陣列中元素的個數即可。

    */

    #include <stdio.h>#include <conio.h>

    int n = 0;

    void swap(int *a, int *b)

    {

    int m;

    m = *a;

    *a = *b;

    *b = m;

    }

    void perm(int list[], int k, int m, FILE *fp)

    {

    int i;

    if(k > m)

    {

    for(i = 0; i <= m; i++)

    fprintf(fp, "%d ", list[i]);

    fprintf(fp, "\n");

    n++;

    }

    else

    {

    for(i = k; i <= m; i++)

    {

    swap(&list[k], &list[i]);

    perm(list, k + 1, m, fp);

    swap(&list[k], &list[i]);

    }

    }

    }

    int main()

    {

    FILE *fop = fopen("d:\\a.txt","w");/*開啟檔案*/ ;

    int list[] = {1, 2, 3, 4};

    perm(list, 0, 3, fop);

    fprintf(fop, "total:%d\n", n);

    fclose(fop);/*關閉檔案*/

    getch();

    return 0;

    }

  • 中秋節和大豐收的關聯?
  • 離婚高到底是因為啥?都是真離婚嗎?