雞兔同籠,三整數(shù)排序

例題1-4:雞兔同籠

已知雞和兔的總數(shù)量為n,總腿數(shù)為m壳澳。輸入n和m,依次輸出雞的數(shù)目和兔的數(shù)目。如果無解,則輸出“ No answer”(不要引號(hào))嗤详。
樣例輸入:14 32
樣例輸出:12 2
樣例輸入:10 16
樣例輸出: No answer
【分析】
設(shè)雞有a只,兔有b只,則a+b=m,2a+4b=m,聯(lián)立解得a=(4n-m)/2,b=n-a个扰。在什么情況下此解“不算數(shù)”呢?首先,a和b都是整數(shù):其次,a和b必須是非負(fù)的〈猩可以通過下面的程序判斷:

n = int(input('n:'))
m = int(input('m:'))
a = (4*n-m)/2
b = n-a
if (m%2 == 1 or a<0 or b<0):
    print('No answer')
else:
    print('a:%d\nb:%d'%(a,b))

換句話說锨匆,m%2=1 or a<0 or b<0是一個(gè)表達(dá)式,它的字面意思是“m是奇數(shù)冬筒,或者a小于0恐锣,或者b小于0”。這句話可能正確舞痰,也可能錯(cuò)誤土榴。因此這個(gè)表達(dá)式的值可能為真,也可能為假响牛,取決于m玷禽、a和b的具體數(shù)值。
這樣的表達(dá)式稱為邏輯表達(dá)式呀打。和算術(shù)表達(dá)式類似矢赁,邏輯表達(dá)式也由運(yùn)算符和值構(gòu)成,例如“or”運(yùn)算符稱為“邏輯或”贬丛,a or b表示a為真撩银,或者b為真。換句話說豺憔,a和b只要有一個(gè)為真额获,a or b就為真;如果a和b都為真恭应,則a or b也為真抄邀。

例題1-5:三整數(shù)排序

輸入3個(gè)整數(shù),從小到大排序后輸出昼榛。
樣例輸入:20 7 33

樣例輸出:7 20 33
【分析】
a境肾、b、c 3個(gè)數(shù)一共只有6種可能的順序:abc胆屿、acb奥喻、bac、bca莺掠、cab衫嵌、cba读宙,所以最簡單的思路是使用6條if語句彻秆。

三整數(shù)排序(1)

a = int(input('a:'))
b = int(input('b:'))
c = int(input('c:'))

if (a<=b and b<=c):
    print('%d %d %d'%(a,b,c))
elif (a<=c and c<=b):
    print('%d %d %d'%(a,c,b))
elif (b<=a and a<=c):
    print('%d %d %d'%(b,a,c))
elif (b<=c and c<=a):
    print('%d %d %d'%(b,c,a))
elif (c<=a and a<=b):
    print('%d %d %d'%(c,a,b))
else:
    print('%d %d %d'%(c,b,a))

三整數(shù)排序(2)

另一種思路是把a(bǔ)、b 、c 這 3 個(gè)變量本身改成a<= b<= c的形式唇兑。首先檢査a 和 b 的值酒朵, 如 果 a > b ,則交換a 和 b (利用前面講過的三變量交換法);接下來檢査a 和 c , 最后檢查b 和 c , 程序如下:

a = int(input('a:'))
b = int(input('b:'))
c = int(input('c:'))
t=0
if a>b:
    t=a
    a=b
    b=t
if a>c:
    t=a
    a=c
    c=t
if b>c:
    t=b
    b=c
    c=t
print('%d %d %d'%(a,b,c))

三整數(shù)排序(3)

最后一種思路再次利用了 “問題求解”這一目標(biāo)—— 它實(shí)際上并沒有真的進(jìn)行排序:求出了最小值和最大值扎附,中間值是可以計(jì)算出來的蔫耽。

a = int(input('a:'))
b = int(input('b:'))
c = int(input('c:'))

#x為當(dāng)前最小值
x = a
if b<x:
    x = b
if c<x:
    x = c
#z為當(dāng)前最達(dá)值
z = a
if b>z:
    z = b
if c>z:
    z = c
y = a+b+c-x-z
print('%d %d %d'%(x,y,z))

參考資料:《算法競賽入門經(jīng)典》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市留夜,隨后出現(xiàn)的幾起案子匙铡,更是在濱河造成了極大的恐慌,老刑警劉巖碍粥,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鳖眼,死亡現(xiàn)場離奇詭異,居然都是意外死亡嚼摩,警方通過查閱死者的電腦和手機(jī)钦讳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枕面,“玉大人愿卒,你說我怎么就攤上這事〕泵兀” “怎么了琼开?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長枕荞。 經(jīng)常有香客問我稠通,道長,這世上最難降的妖魔是什么买猖? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任改橘,我火速辦了婚禮,結(jié)果婚禮上玉控,老公的妹妹穿的比我還像新娘飞主。我一直安慰自己,他們只是感情好高诺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布碌识。 她就那樣靜靜地躺著,像睡著了一般虱而。 火紅的嫁衣襯著肌膚如雪筏餐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天牡拇,我揣著相機(jī)與錄音魁瞪,去河邊找鬼穆律。 笑死,一個(gè)胖子當(dāng)著我的面吹牛导俘,可吹牛的內(nèi)容都是我干的峦耘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼旅薄,長吁一口氣:“原來是場噩夢啊……” “哼辅髓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起少梁,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤洛口,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后凯沪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绍弟,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年著洼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了樟遣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡身笤,死狀恐怖豹悬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情液荸,我是刑警寧澤瞻佛,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站娇钱,受9級(jí)特大地震影響伤柄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜文搂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一适刀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧煤蹭,春花似錦笔喉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至稽物,卻和暖如春奄毡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贝或。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國打工吼过, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锐秦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓那先,卻偏偏與公主長得像农猬,于是被迫代替她去往敵國和親赡艰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子售淡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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

  • 在C語言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,343評(píng)論 0 2
  • 專業(yè)考題類型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 8,993評(píng)論 0 13
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,383評(píng)論 0 5
  • 1:快速排序 先上模板 然后是習(xí)題 785. 快速排序 快速排序的基本思想是基于分治大致思想是假設(shè)我們有一個(gè)集合q...
    Charon_ted閱讀 1,125評(píng)論 0 0
  • 上一篇:相逢在哈爾濱 ——從大興安嶺到呼倫貝爾(二) 計(jì)劃第二站是到我國最北的地方——漠河,訂了晚上的火車票慷垮,白天...
    米老爹閱讀 2,675評(píng)論 65 43