當前位置:編程學習大全網 - 編程語言 - 方案編制中的平等

方案編制中的平等

先用C語言對此類問題99%的回答都是窮舉的,然後再判斷符合要求的答案。

然後分析這個問題,可以理解為12的數字沒有重復排列,然後要求(以下數字為數字)1+2+3 = 3+4+5 = 5+6+7 = 7+8+9 = 9+10+166。

雖然圖形是六邊形,但是拉成直線就是壹維數組。

根據排列組合,12的數應該是12!(不算多少錢。超級大。)

所以解決方案如下:

我不會寫全部代碼,而是寫壹個關鍵部分,自己完成,有利於提高。

int a[12];//存儲12的排列數。

//該函數用於判斷12的排列是否符合要求。

bool IsOK(int* a)

{

int b;

b = a[0]+a[1]+a[2];

if(a[2]+a[3]+a[4]= = b & amp;& amp

a[4]+a[5]+a[6]= = b & amp;& amp

a[6]+a[7]+a[8]= = b & amp;& amp

a[8]+a[9]+a[10]= = b & amp;& amp

a[10]+a[11]+a[0]= = b)

{

返回true

}

其他

{

返回false

}

}

//生成隨機排列(算法還在寫。這是最復雜的部分。妳自己想想吧。完成後我會重新發行)

void create com();

int main()

{

while(1)

{

create com();

if(IsOk(a))

{

//打印

}

}

}

生成排列的算法很長。我告訴妳這個想法。妳可以自己體會。

題目:實現n個數的不重復排列

使用遞歸

設實現方法為f(n),則f(n)與f(n-1)的關系為

對於f(n-1),a1,a2的每個組合...,an-1。

在每個缺口分別插入n,這樣就多了n種排列。

n,a1,a2,...,an-1

a1,n,a2,...,an-1

a1,a2,n....,an-1

.....

a1,a2,......an-1,n

C語言使用難點:C語言沒有容器!如果想用純C語言,需要自己寫容器算法(我自己寫的,用鏈表實現)。如果會用C++,可以用C++容器來實現。

我寫了幾千行代碼來實現它。

  • 上一篇:面向對象程序設計的基本特征?
  • 下一篇:五月提新款菱智M5,願生活像花兒壹樣美
  • copyright 2024編程學習大全網