()3*6528=3()*8256,在兩個括號裡填入相同的數字,使等式成立。我們可以用下面三行**就可以搞定它
for(i=1;i<=9;i++)
if((i*10+3)*6528==(30+i)*8256)
printf("%d",i);
現在我們想如果是()()()+()()()=()()()(),現在需要我們在括號裡輸入1到9使等式成立。例如173+286=459就是乙個結果。
我們可以用列舉來完成,其實列舉就是把所有的可能性都嘗試一遍的一種方法。
下面我們就來看看我們的列舉是怎麼解決問題的吧
#include
int main() }
printf("total=%d",total/2);//想想除以2的原因
return 0;
} 我想我們每個人都不願意去寫這樣冗長的**,我們book陣列來解決互不相等的問題,
for(i=1;i<=9;i++)
book[i]=0;
for(i=1;i<=9;i++)//如果某個數出現就標記一下
book[a[i]]=1;
sum=0;
for(i=1;i<=9;i++)
sum=sum+book[i];//統計出現多少不同的數
想想用這種方法該如何去寫程式呢?我們想我們還可以把9個空格看成是9個需要我們放9個不同數的盒子,只不過是乙個需要滿足等式的盒子,我們可以試試用深度優先搜尋的方法哦!
#include
int a[10],book[10];
void fun(int step)
return;
}for(i=1;i<=9;i++)
}return;
} int main()
深度優先搜尋與寬度優先搜尋
深度優先搜尋類似於樹的先序遍歷,從每個頂點開始深度優先遍歷,對該分支路徑深入遍歷到不能再深入為止,返回上層,若上一層有新的分支路徑,繼續遍歷該分支,直到所有點都被訪問 1 訪問該頂點,並標記為已訪問 2 if 該頂點的連線點未被訪問過 遞迴呼叫dfs 3 重複 2 直到該頂點的所有連線點都被訪問 t...
深度優先搜尋與廣度優先搜尋
深度優先遍歷的主要思想就是 首先以乙個未被訪問過的頂點作為起始頂點,沿當前頂點的邊走到未訪問過的頂點 當沒有未訪問過的頂點時,則回到上乙個頂點,繼續試探訪問別的頂點,直到所有的頂點都被訪問。沿著某條路徑遍歷直到末端,然後回溯,再沿著另一條進行同樣的遍歷,直到所有的頂點都被訪問過為止。通過上面的圖例可...
廣度優先搜尋與深度優先搜尋
廣度優先搜尋使用的是步步為營的策略,每執行一步迴圈就會把所有可能的情況加入佇列,直到調出迴圈。適用於求最短的問題。深度優先搜尋則是依次遍歷每一種情況,直至找到問題的解。深度優先搜尋和廣度優先搜尋都屬於窮竭法。在執行記憶體空間上面,廣度優先搜尋與情況數成正比,而深度優先搜尋與遞迴深度成正比。inclu...