摘要:首先假設(shè)有一個(gè)四位數(shù)為,四位分別為,則得到一個(gè)數(shù),我們使它遞歸到最后只剩一位數(shù)字,假設(shè)為,則所以數(shù)字所有位數(shù)遞歸累加至一位時(shí)的結(jié)果為回頭再看別人的解法還是一臉茫然,因?yàn)閷?duì)操作符的運(yùn)行順序不明白。
將給定自然數(shù)的所有位相加直到數(shù)字最后只剩一位。
16 => 1 + 6 => 7; 942 => 9 + 4 + 2 => 15 => 1 + 5 => 6 132189 => 1 + 3 + 2 + 1 + 8 + 9 => 24 => 2 + 4 => 6
看了別人給出的解法:
num % 9 or n and 9
看得我一臉茫然,不知道發(fā)生了什么,在網(wǎng)上查找了一番理解了下這個(gè)算法。
首先假設(shè)有一個(gè)四位數(shù)為n,四位分別為a、b、c、d,則:
n % 9 = (999a + 99b + 9c + a + b + c + d) % 9 = (a + b + c + d) % 9
(a + b + c + d)得到一個(gè)數(shù),我們使它遞歸到最后只剩一位數(shù)字,假設(shè)為k,則:
n % 9 = k % 9
所以數(shù)字n所有位數(shù)遞歸累加至一位時(shí)的結(jié)果k為:
if n % 9 == 0: k = 9 elif n == 0: k = 0 else: k = n % 9
回頭再看別人的解法:
num % 9 or n and 9
還是一臉茫然,因?yàn)閷?duì)操作符的運(yùn)行順序不明白。又去查了下:
Operation | Result |
---|---|
x or y | if x is false, then y, else x |
x and y | if x is false, then x, else y |
not x | if x is false, then True, else False |
優(yōu)先級(jí)關(guān)系:or < and < not,同一優(yōu)先級(jí)默認(rèn)從左往右計(jì)算
再回頭看別人的解法,應(yīng)該是這樣:
num % 9 or (n and 9)
所以,這種還是多加括號(hào),免得產(chǎn)生歧義,或者把我這種小白繞暈。
以下為參考鏈接
https://segmentfault.com/q/10...
http://blog.csdn.net/qq_28267...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40942.html
摘要:查找表查找表相關(guān)概念查找表是由同一類型的數(shù)據(jù)元素或記錄構(gòu)成的集合。由于集合中的數(shù)據(jù)元素之間存在著完全松散的關(guān)系,因此查找表是一種非常靈便的數(shù)據(jù)結(jié)構(gòu)。缺點(diǎn)平均查找長度較大。索引順序表的查找若以索引順序表表示靜態(tài)查找表,則查找可以用分塊查找。 查找表 search table 查找表相關(guān)概念 查找表是由同一類型的數(shù)據(jù)元素(或記錄)構(gòu)成的集合。由于集合中的數(shù)據(jù)元素之間存在著完全松散的關(guān)系,因...
摘要:查找表查找表相關(guān)概念查找表是由同一類型的數(shù)據(jù)元素或記錄構(gòu)成的集合。由于集合中的數(shù)據(jù)元素之間存在著完全松散的關(guān)系,因此查找表是一種非常靈便的數(shù)據(jù)結(jié)構(gòu)。缺點(diǎn)平均查找長度較大。索引順序表的查找若以索引順序表表示靜態(tài)查找表,則查找可以用分塊查找。 查找表 search table 查找表相關(guān)概念 查找表是由同一類型的數(shù)據(jù)元素(或記錄)構(gòu)成的集合。由于集合中的數(shù)據(jù)元素之間存在著完全松散的關(guān)系,因...
摘要:而大寫字母,就是第個(gè),也就是二進(jìn)制的,對(duì)應(yīng)的十六進(jìn)制表示就是。在中文世界里,最典型的就是手持兩把錕斤拷,口中疾呼燙燙燙的典故。既然今天要徹底搞清楚編碼知識(shí),我們就來弄清楚錕斤拷和燙燙燙的來龍去脈。參考深入淺出計(jì)算機(jī)組成原理 showImg(https://image-static.segmentfault.com/206/872/2068726052-5d5922b2effb9_art...
摘要:原碼補(bǔ)碼和反碼原碼一個(gè)數(shù)在計(jì)算機(jī)中是以二進(jìn)制的形式存在的,其中第一位存放符號(hào)正數(shù)為負(fù)數(shù)為。中的位運(yùn)算在中按位操作符會(huì)將其操作數(shù)轉(zhuǎn)成補(bǔ)碼形式的有符號(hào)位整數(shù)。原文鏈接由扯到中的位運(yùn)算 這個(gè)話題的由來是2016年3月份的時(shí)候 NPM 社區(qū)發(fā)生了‘left-pad’事件,不久后社區(qū)就有人發(fā)布了用來補(bǔ)救的,也是現(xiàn)在大家能用到的 left-pad 庫。 最開始這個(gè)庫的代碼是這樣的。 module....
摘要:將加法和加上校驗(yàn)位能被整除。下面分別分析出生日期和校驗(yàn)位檢查生日日期是否正確輸入的身份證號(hào)里出生日期不對(duì)將位身份證轉(zhuǎn)成位校驗(yàn)位按照的規(guī)定生成,可以認(rèn)為是數(shù)字。校驗(yàn)位按照的規(guī)定生成,可以認(rèn)為是數(shù)字。表示全部為中文為不全是中文,或沒有中文。 判斷是否是合理的銀行卡卡號(hào) //Description: 銀行卡號(hào)Luhm校驗(yàn) //Luhm校驗(yàn)規(guī)則:16位銀行卡號(hào)(19位通用): // 1.將...
閱讀 1996·2021-11-22 19:20
閱讀 2641·2021-11-22 13:54
閱讀 1971·2021-09-04 16:40
閱讀 1827·2021-08-13 11:54
閱讀 2672·2019-08-30 15:55
閱讀 3468·2019-08-29 13:51
閱讀 531·2019-08-29 11:09
閱讀 3010·2019-08-26 14:06