蠻力法基本了解及練習

2021-10-10 06:16:15 字數 3328 閱讀 7646

蠻力法是一種簡單,直接解決問題的方法,通常直接基於問題的描述和所涉及的概念定義。這裡的「力」是指計算機的計算能力,而不是人的智力。一般來說,蠻力法是最容易應用的方法。

蠻力法是把問題的所有情況或者所有的過程交給計算機去一一嘗試,從中找出問題的解。

蠻力法優點:邏輯清晰,編寫程式簡潔。

可以用來解決廣域領域的問題。

對於重要問題,可以產生一些合理的演算法。

可以解決一些小規模的問題。

可以作為其他高效演算法的衡量標準。

以下是對於蠻力法的練習

//題目描述

//給定n個數,請找出其中相差(差的絕對值)最小的兩個數,輸出它們的差值的絕對值。

//n < 5000

//輸入

//輸入第一行包含乙個整數n。第二行包含n個正整數,相鄰整數之間使用乙個空格分隔。

//輸出

//輸出乙個整數,表示答案

//樣例輸入

//5//1 5 4 8 20

//樣例輸出

//1#include

#include

using

namespace std;

#define max 5000

intmain()

;for

(int i =

0; i < n; i++

)sort

(a,a+n)

;for

(int j =

1; j < n; j++)}

printf

("%d"

,min)

;return0;

}

//在象棋算式裡,不同的棋子代表不同的數,有以下算式,設計乙個演算法求這些棋子各代表哪些數字。 

//每個數字範圍為0-9,請求出各棋子所代表的數字

// 兵 炮 馬 卒

// +

// 兵 炮 車 卒

//--------------------------

// 車 卒 馬 兵 卒

#include

intmain()

}}}}

}return0;

}

//給定乙個整數數列,數列中連續相同的最長整數序列算成一段,問數列中共有多少段? 

//輸入

////輸入的第一行包含乙個整數n,表示數列中整數的個數。

//第二行包含n個整數a1 a2 … an,表示給定的數列,相鄰的整數之間用乙個空格分隔。

////

//輸出

//輸出乙個整數,表示給定的數列有多少個段。

//樣例輸入

//8//8 8 8 0 12 12 8 0

//樣例輸出

//5#include

intmain()

temp = first;

}printf

("%d"

,sum)

;return0;

}

//題目描述

//給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。 (n<=1000)

//輸入

//給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。

//輸出

//輸出乙個整數,表示值正好相差1的數對的個數。

//樣例輸入

//6//10 2 6 3 7 8

//樣例輸出

//3//提示

////

//值正好相差1的數對包括(2 3) (6 7) (7 8)。

#include

#include

using

namespace std;

#define max 5000

intmain()

;for

(int i =

0; i < n; i++

)sort

(a,a+n)

;for

(int i =

1; i < n; i++)}

printf

("%d"

,sum)

;return0;

}

```c

#include//編寫乙個程式,輸出2~1000之間的完全數

//完全數即該數字除本身外的各因子之和正好等於該數本身

//例如:6=1+2+3

int main()

}if(i == sum)

}printf("\n");

return 0;

}

//題目描述

// 有n個小朋友圍成一圈玩遊戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友坐在2號小朋友的順時針方向,……,1號小朋友坐在n號小朋友的順時針方向。

//遊戲開始,從1號小朋友開始順時針報數,接下來每個小朋友的報數是上乙個小朋友報的數加1。若乙個小朋友報的數為k的倍數或其末位數(即數的個位)為k,則該小朋友被淘汰出局,不再參加以後的報數。當遊戲中只剩下乙個小朋友時,該小朋友獲勝。

//例如,當n=5 k=2時:

//1號小朋友報數1;

//2號小朋友報數2淘汰;

//3號小朋友報數3;

//4號小朋友報數4淘汰;

//5號小朋友報數5;

//1號小朋友報數6淘汰;

//3號小朋友報數7;

//5號小朋友報數8淘汰;

//3號小朋友獲勝。

//給定n和k,請問最後獲勝的小朋友編號為多少?

////資料規模和約定:對於所有評測用例,1≤n≤ 1000,1≤k≤ 9。

////輸入

//輸入一行,包括兩個整數n和k,意義如題目所述

//輸出

//輸出一行,包含乙個整數,表示獲勝的小朋友編號

//樣例輸入

//5 2

//樣例輸出

//3#include

#include

using

namespace std;

intmain()

int temp =1;

int children =1;

while

(!ch.

empty()

)printf

("%d\n"

,children)

;return0;

}

了解shell及shell基本命令

一 shell是什麼?shell就是乙個應用程式,我們可以通過串列埠等給它傳送命令,回車它就會去執行這些命令。二 shell應用程式執行過程 1 接收資料並回顯 2 當接收到回車時解析輸入的字串,在path裡的目錄下尋找程式,執行程式。三 如何在path新增目錄?1 在path中臨時新增目錄 終端輸...

了解SpringMVC框架及基本工作流程

傳統原生的jsp servlet在開發上過程上雖然簡單明瞭,jsp頁面傳遞資料到servlet,servlet整理資料 邏輯開發 或者從資料庫提取資料接著再 到jsp頁面上,但是其似乎只能止步於此,我們都知道我們request和response都依賴於url,當我們想要通過針對圍繞url進行程式設計...

了解SpringMVC框架及基本工作流程

傳統原生的jsp servlet在開發上過程上雖然簡單明瞭,jsp頁面傳遞資料到servlet,servlet整理資料 邏輯開發 或者從資料庫提取資料接著再 到jsp頁面上,但是其似乎只能止步於此,我們都知道我們request和response都依賴於url,當我們想要通過針對圍繞url進行程式設計...