国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

藍(lán)橋杯之全排列函數(shù)next_permutation()運(yùn)用

2019-11-10 22:42:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在藍(lán)橋杯的題目中大多數(shù)都可以運(yùn)用到全排列函數(shù) 充分運(yùn)用可以節(jié)省很多的時(shí)間。話(huà)不多說(shuō)來(lái)刷題


三羊獻(xiàn)瑞 觀察下面的加法算式: 祥 瑞 生 輝

+ 三 羊 獻(xiàn) 瑞

三 羊 生 瑞 氣 (如果有對(duì)齊問(wèn)題,可以參看【圖1.jpg】)其中,相同的漢字代表相同的數(shù)字,不同的漢字代表不同的數(shù)字。請(qǐng)你填寫(xiě)“三羊獻(xiàn)瑞”所代表的4位數(shù)字(答案唯一),不要填寫(xiě)任何多余內(nèi)容。

看到這題一看就知道用暴力搜索法,代碼如下

#include<iostream>using namespace std;int check(int num[],int n){ for(int i = 0; i < n; i++) { if(num[i]==num[n]) { return 0; } } return 1;}int main(){ int num[8]; int count = 0; for(num[0] = 1; num[0] <=9; num[0]++) { if(check(num,0)) for(num[1] = 0; num[1] <=9; num[1]++) { if(check(num,1)) for(num[2] = 0; num[2] <=9; num[2]++) { if(check(num,2)) for(num[3] = 0; num[3] <=9; num[3]++) { if(check(num,3)) for(num[4] = 1; num[4] <=9; num[4]++) { if(check(num,4)) for(num[5] = 0; num[5] <=9; num[5]++) { if(check(num,5)) for(num[6] = 0; num[6] <=9; num[6]++) { if(check(num,6)) for(num[7] = 0; num[7] <=9; num[7]++) { if(check(num,7)) { int a = num[0]*1000+num[1]*100+num[2]*10+num[3]; int b = num[4]*1000+num[5]*100+num[6]*10+num[1]; int c = num[4]*10000+num[5]*1000+num[2]*100+num[1]*10+num[7]; if(a+b==c) { cout << b; } } } } } } } } }} return 0;}

看了一下六十多行,啊,學(xué)這么多好累啊! 對(duì)于這種超過(guò)5個(gè)循環(huán)以上的暴力可以考慮用全排列函數(shù) 第二種方法如下:

#include<iostream>#include<algorithm>using namespace std;int main1(){ int num[10] = {1,0,2,3,4,5,6,7,8,9}; int count = 0; do { if(num[0]!=0&&num[4]!=0) { int a = num[0]*1000+num[1]*100+num[2]*10+num[3]; int b = num[4]*1000+num[5]*100+num[6]*10+num[1]; int c = num[4]*10000+num[5]*1000+num[2]*100+num[1]*10+num[7]; if(a+b==c) { cout << b; break; } } }while(next_permutation(num,num+10)); return 0;}

這就簡(jiǎn)便多了,這里注意到題目 答案唯一 所以當(dāng)瞞住條件后就可以跳出循環(huán),算法的時(shí)間就可以大大減少 自己總結(jié)了一下運(yùn)用全排列的環(huán)境

五重循環(huán)以上數(shù)字不能重復(fù)要有順序
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 河间市| 凤翔县| 云阳县| 仙居县| 泸溪县| 沾化县| 温泉县| 西林县| 沽源县| 临清市| 工布江达县| 大厂| 游戏| 东乌| 盈江县| 高雄县| 乌海市| 平潭县| 西乌| 江油市| 阿巴嘎旗| 新化县| 资溪县| 孟州市| 闽清县| 黄平县| 福安市| 绵阳市| 定安县| 华阴市| 老河口市| 麻城市| 子洲县| 鹤山市| 莱西市| 出国| 廉江市| 眉山市| 大同县| 长丰县| 泰兴市|