【語法篇】5梨树、for循環(huán)(二)

一坑夯、篩選

在現(xiàn)實(shí)生活中,處處存在競爭和篩選抡四,古代人們從沙礫中淘金柜蜈,也是一種篩選。所謂篩選指巡,就是在某個(gè)范圍內(nèi)淑履,將符合某種特定條件的東西遴選出來的過程。篩選在編程中也有非常廣泛的應(yīng)用藻雪。

輸出1~100內(nèi)秘噪,所有能被3整除的數(shù)。

這就是一個(gè)非常典型的篩選阔涉,其實(shí)所有篩選缆娃,最重要就是解決兩個(gè)問題:一是篩選的范圍;二是篩選的條件瑰排。篩選在編程中具體表現(xiàn)為:循環(huán)+選擇。

#include <iostream>
using namespace std;
int main(){
    for(int i=1; i<=100; i++){ // 范圍 
        if(i%3 == 0){          // 條件 
            cout << i << endl;
        }
    }
    return 0;
}

二暖侨、篩選典型案例

1椭住、36點(diǎn)

一個(gè)兩位數(shù)x,將它的個(gè)位數(shù)字與十位數(shù)字對調(diào)后得到一個(gè)新數(shù)y字逗,此時(shí)y恰好比x大36京郑,請編程求出所有這樣的兩位數(shù)。

稍加分析葫掉,我們不難得出這個(gè)案例中些举,因?yàn)獒槍Φ膶ο笫嵌粩?shù),所以篩選的范圍是10~99俭厚;條件是構(gòu)造出的新數(shù)y比原來的二位數(shù)x大36户魏,即y-x == 36。新數(shù)y的構(gòu)造挪挤,即是將個(gè)位與十位數(shù)對調(diào)即可叼丑,借助數(shù)位分離,我們很容易構(gòu)造出新數(shù)y扛门。

#include<iostream>
using namespace std;
int main(){
    for(int x=10;x<100;x++){
        int ge=x%10;
        int shi=x/10;
        int y=ge*10+shi;
        if(y-x==36)
                      cout<<x<<" ";
    }
}

2鸠信、水仙花數(shù)

在自然數(shù)中,如果一個(gè)三位數(shù)等于自身各位數(shù)字之立方和论寨,則這個(gè)三位數(shù)就稱為是水仙花數(shù)星立。如: 153=13+53+3^3爽茴,所以153是一個(gè)水仙花數(shù)。求所有的水仙花數(shù)绰垂。

稍加分析闹啦,我們不難得出,篩選的是三位數(shù)辕坝,所以范圍是100~999窍奋;條件是個(gè)位的立方+十位的立方+百位的立方之和剛好等于這個(gè)三位數(shù)。我們借助數(shù)位分離可以容易得出個(gè)酱畅、十琳袄、百位的數(shù)字。

#include <iostream>
using namespace std;
int main(){
    for(int i=100; i<=999; i++){ // 范圍 
        int g = i%10;      //個(gè)位 
        int s = i/10%10;   //十位 
        int b = i/100;     //百位 
        if(g*g*g+s*s*s+b*b*b == i) //條件 
            cout << i << endl;
    }
    return 0;
}
水仙花數(shù)

三纺酸、最大值和最小值

1窖逗、求最大值和最小值

Description
輸入10個(gè)數(shù),求其中的最大數(shù)和最小數(shù)餐蔬。
Input
輸入10個(gè)數(shù)
Output
輸出最大數(shù)和最小數(shù)
Sample Input
31
452
456
12
4
45672
1234
873
9145
1849
Sample Output
45672
4

這個(gè)問題碎紊,看起來很容易,但是要解決起來樊诺,卻不是那么容易有思路仗考。我們不妨把這個(gè)問題,看成是『士兵站崗』词爬,總共有十個(gè)士兵秃嗜,假設(shè)每個(gè)士兵身高都不同,我們要找出最高的那個(gè)士兵顿膨,讓他來站崗锅锨。站崗這個(gè)問題,就像我們以前學(xué)校抓插隊(duì)學(xué)生一樣恋沃,老師抓到一個(gè)插隊(duì)的學(xué)生A必搞,就讓A值日,直到抓到下一個(gè)插隊(duì)學(xué)生B囊咏,那么A就會(huì)被B取代恕洲,依次類推,直到最后抓不到人了匆笤,就是最后那個(gè)學(xué)生一直值班了研侣。『士兵站崗』這個(gè)問題炮捧,也是同樣的庶诡,遇到比站崗士兵更高的,就替換他咆课,否則就由這個(gè)士兵一直站崗末誓,當(dāng)所有士兵的輪流比較完扯俱,最后站崗的士兵就是身高最高的士兵。為了避免出現(xiàn)無人站崗的情況喇澡,我們先假設(shè)第一個(gè)士兵就是最高的迅栅,先把他抓去站崗,后面再輪流比較后面的士兵晴玖。

士兵站崗

同樣的读存,我們不僅可以找最高的士兵,還能找最矮的士兵呕屎。這也就是最大值和最小值的求法了让簿。假設(shè)有n個(gè)數(shù),我們可以假定第一個(gè)數(shù)就是最大值max秀睛,也假定它同時(shí)是最小值min尔当,剩下n-1個(gè)數(shù)依次與max/min比較,比max就更新max的值蹂安,比min小也更新min的值椭迎。最后得出的max/min就是我們所要求的。

#include <iostream>
using namespace std;
int main(){
    int x;
    cin >> x;
    int max, min;
    max = min = x;  //假定第一個(gè)數(shù)就是最大值和最小值
    for(int i=1; i<=9; i++){ // 總共十個(gè)數(shù)田盈,除去第一個(gè)數(shù)畜号,還剩下九個(gè) 
        cin >> x;
        if(x>max)  //如果遇到的數(shù)比當(dāng)前最大值更大,更新最大值 
            max = x;
        if(x<min)  //如果遇到的數(shù)比當(dāng)前最小值更小缠黍,更新最小值 
            min = x; 
    } 
    cout << max << endl;
    cout << min << endl; 
    return 0;
}

2弄兜、拓展

既然我們可以挑選出最大的數(shù),那么應(yīng)該也可以挑選出第二大的數(shù)(請自行探究)瓷式,可以挑出其他大的數(shù),即是能用這種方法對數(shù)據(jù)進(jìn)行排序语泽,這樣的排序思想贸典,叫做『選擇排序』,我們在學(xué)習(xí)完『數(shù)組』后踱卵,就會(huì)向大家介紹這種排序廊驼。數(shù)據(jù)的排序是整個(gè)算法的基礎(chǔ),我們后面會(huì)接觸到大量的排序算法惋砂。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妒挎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子西饵,更是在濱河造成了極大的恐慌酝掩,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眷柔,死亡現(xiàn)場離奇詭異期虾,居然都是意外死亡原朝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門镶苞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喳坠,“玉大人,你說我怎么就攤上這事茂蚓『攫模” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵聋涨,是天一觀的道長晾浴。 經(jīng)常有香客問我,道長牛郑,這世上最難降的妖魔是什么怠肋? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮淹朋,結(jié)果婚禮上笙各,老公的妹妹穿的比我還像新娘。我一直安慰自己础芍,他們只是感情好杈抢,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著仑性,像睡著了一般惶楼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诊杆,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天歼捐,我揣著相機(jī)與錄音,去河邊找鬼晨汹。 笑死豹储,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的淘这。 我是一名探鬼主播剥扣,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼铝穷!你這毒婦竟也來了钠怯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤曙聂,失蹤者是張志新(化名)和其女友劉穎晦炊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡刽锤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年镊尺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片并思。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡庐氮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出宋彼,到底是詐尸還是另有隱情弄砍,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布输涕,位于F島的核電站音婶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏莱坎。R本人自食惡果不足惜衣式,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望檐什。 院中可真熱鬧碴卧,春花似錦、人聲如沸乃正。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓮具。三九已至荧飞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間名党,已是汗流浹背叹阔。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留传睹,地道東北人条获。 一個(gè)月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像蒋歌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子委煤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容