日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蛮力法基本了解及练习

發布時間:2023/12/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蛮力法基本了解及练习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

蠻力法是一種簡單,直接解決問題的方法,通常直接基于問題的描述和所涉及的概念定義。這里的“力”是指計算機的計算能力,而不是人的智力。一般來說,蠻力法是最容易應用的方法。
蠻力法是把問題的所有情況或者所有的過程交給計算機去一一嘗試,從中找出問題的解。
蠻力法優點:邏輯清晰,編寫程序簡潔。
可以用來解決廣域領域的問題。
對于重要問題,可以產生一些合理的算法。
可以解決一些小規模的問題。
可以作為其他高效算法的衡量標準。
以下是對于蠻力法的練習

//題目描述 //給定n個數,請找出其中相差(差的絕對值)最小的兩個數,輸出它們的差值的絕對值。 //n < 5000 //輸入 //輸入第一行包含一個整數n。第二行包含n個正整數,相鄰整數之間使用一個空格分隔。 //輸出 //輸出一個整數,表示答案 //樣例輸入 //5 //1 5 4 8 20 //樣例輸出 //1 #include<iostream> #include<algorithm> using namespace std; #define max 5000int main() {int n = 0;int temp = 0;int min = 1000000;scanf("%d",&n);int a[max] = {0};for(int i = 0; i < n; i++){scanf("%d", &a[i]);} sort(a,a+n);for(int j = 1; j < n; j++){if(min > a[j]-a[j-1]){min = a[j]-a[j-1];}}printf("%d",min);return 0; } //在象棋算式里,不同的棋子代表不同的數,有以下算式,設計一個算法求這些棋子各代表哪些數字。 //每個數字范圍為0-9,請求出各棋子所代表的數字 // 兵 炮 馬 卒 // + // 兵 炮 車 卒 //-------------------------- // 車 卒 馬 兵 卒 #include<stdio.h> int main() {int a = 0;//卒 int b = 0;//兵 int c = 0;//馬 int d = 0;//炮 int e = 0;//車 int m = 0;int n = 0;int q = 0;for(a = 0; a < 9; a++){for(b = 0; b < 9; b++) {for(c = 0; c < 9; c++){for(d = 0; d < 9; d++){for(e = 1; e < 9; e++){m = b*1000+d*100+c*10+a;n = b*1000+d*100+e*10+a;q = e*10000+a*1000+c*100+b*10+a;if(q == m + n){printf("%d %d %d %d %d",b,d,c,a,e);}}}}} } return 0; } //給定一個整數數列,數列中連續相同的最長整數序列算成一段,問數列中共有多少段? //輸入 // //輸入的第一行包含一個整數n,表示數列中整數的個數。 //第二行包含n個整數a1 a2 … an,表示給定的數列,相鄰的整數之間用一個空格分隔。 // // //輸出 //輸出一個整數,表示給定的數列有多少個段。 //樣例輸入 //8 //8 8 8 0 12 12 8 0 //樣例輸出 //5 #include<stdio.h> int main() {int n = 0;int first = 0;int temp = 0;int sum = 0;scanf("%d",&n);for(int i = 0; i < n; i++){scanf("%d",&first); if(first != temp){sum++;}temp = first;}printf("%d",sum);return 0;} //題目描述 //給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。 (N<=1000) //輸入 //給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。 //輸出 //輸出一個整數,表示值正好相差1的數對的個數。 //樣例輸入 //6 //10 2 6 3 7 8 //樣例輸出 //3 //提示 // // //值正好相差1的數對包括(2 3) (6 7) (7 8)。 #include<iostream> #include<algorithm> using namespace std; #define max 5000 int main() {int n = 0;int sum = 0;scanf("%d",&n);int a[max] = {0};for(int i = 0; i < n; i++){scanf("%d",&a[i]);}sort(a,a+n);for(int i = 1; i < n; i++){if(a[i] - a[i-1] == 1){sum++;}}printf("%d",sum);return 0; } ```c #include<stdio.h> //編寫一個程序,輸出2~1000之間的完全數 //完全數即該數字除本身外的各因子之和正好等于該數本身 //例如:6=1+2+3 int main() {int i = 0;int j = 0;for(i = 2; i <= 1000; i++){int sum = 0;for(j = 1; j <= i/2; j++){if(i % j ==0){sum += j;} }if(i == sum){printf("%d ",i);}}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<iostream> #include<queue> using namespace std; int main() { int n = 0;int k = 0;queue<int> ch;scanf("%d%d",&n,&k);for(int i = 1; i <= n; i++) {ch.push(i); } int temp = 1;int children = 1;while(!ch.empty()){children = ch.front();ch.pop();if(temp % k == 0 || temp % 10 == k);else ch.push(children);temp++;}printf("%d\n",children);return 0; }

總結

以上是生活随笔為你收集整理的蛮力法基本了解及练习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。