4醉旦、計(jì)數(shù)質(zhì)數(shù)饶米、羅馬數(shù)字轉(zhuǎn)整數(shù)、3的冪车胡、Fizz Buzz

計(jì)數(shù)質(zhì)數(shù)

統(tǒng)計(jì)所有小于非負(fù)整數(shù) n 的質(zhì)數(shù)的數(shù)量檬输。
示例 1:
輸入:n = 10
輸出:4
解釋:小于 10 的質(zhì)數(shù)一共有 4 個(gè), 它們是 2, 3, 5, 7 。

質(zhì)數(shù)的特點(diǎn):

1.除了1以外的自然數(shù)如果只能被1和它本身整除這個(gè)數(shù)就是質(zhì)數(shù)
2.合數(shù) 能被除1和本身以外的數(shù)整除匈棘, 這個(gè)數(shù)一定小于等于合數(shù)的開(kāi)平方

var countPrimes = function(n) {
    let res = 0,isPrime = new Array(n).fill(1) 
    //Array(n).fill(1) 創(chuàng)建一個(gè)長(zhǎng)度為n的數(shù)組并且填充值為1
    for(let i=2;i<n;i++){
        if(isPrime[i]){
            res++
            for(let j=i*2;j<n;j+=i){ //把二倍及以上的倍數(shù)篩掉
                isPrime[j] = 0
            }
        }
    }
    console.log(isPrime,res)

};

優(yōu)化:
上述解法丧慈,被重復(fù)篩選。例如10主卫,2時(shí)篩1次逃默,5時(shí)又1次。如何減少重復(fù)呢簇搅?
舉例5完域。16以內(nèi),從2起瘩将,5的倍數(shù)吟税,5 * 2,5 * 3姿现。
在2和3時(shí)倍數(shù)時(shí)乌妙,被篩選過(guò)
n以內(nèi),從2起建钥,任意數(shù)i的倍數(shù)藤韵,i * 2,i * 3 ... i * i ... i * x(x > i) < n
在i之前的倍數(shù)熊经,一定在遍歷到i前泽艘,被篩選過(guò)

var countPrimes = function(n) {
    let res = 0,isPrime = new Array(n).fill(1) 
    //Array(n).fill(1) 創(chuàng)建一個(gè)長(zhǎng)度為n的數(shù)組并且填充值為1
    for(let i=2;i<n;i++){
        if(isPrime[i]){
            res++
            for(let j=i*i;j<n;j+=i){ //把二倍及以上的倍數(shù)篩掉
                isPrime[j] = 0
            }
        }
    }
    console.log(isPrime,res)

};

羅馬數(shù)字轉(zhuǎn)整數(shù)

羅馬數(shù)字包含以下七種字符: I, V镐依, X匹涮, L,C槐壳,D 和 M然低。
字符 數(shù)值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 羅馬數(shù)字 2 寫做 II ,即為兩個(gè)并列的 1雳攘。12 寫做 XII 带兜,即為 X + II 。 27 寫做 XXVII, 即為 XX + V + II 吨灭。
通常情況下刚照,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。但也存在特例喧兄,例如 4 不寫做 IIII无畔,而是 IV。數(shù)字 1 在數(shù)字 5 的左邊吠冤,所表示的數(shù)等于大數(shù) 5 減小數(shù) 1 得到的數(shù)值 4 浑彰。同樣地,數(shù)字 9 表示為 IX拯辙。這個(gè)特殊的規(guī)則只適用于以下六種情況:
I 可以放在 V (5) 和 X (10) 的左邊郭变,來(lái)表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左邊薄风,來(lái)表示 40 和 90。
C 可以放在 D (500) 和 M (1000) 的左邊拍嵌,來(lái)表示 400 和 900遭赂。
給定一個(gè)羅馬數(shù)字,將其轉(zhuǎn)換成整數(shù)横辆。輸入確保在 1 到 3999 的范圍內(nèi)撇他。
示例 1:
輸入: "III"
輸出: 3

var romanToInt = function(s) {
    let sMap = new Map()
    sMap.set('I',1)
    sMap.set('V',5)
    sMap.set('X',10)
    sMap.set('L',50)
    sMap.set('C',100)
    sMap.set('D',500)
    sMap.set('M',1000)
    let count = 0
    for(let i=0;i<s.length;i++){
//通常情況下,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊狈蚤。
        if(sMap.get(s[i])<sMap.get(s[i+1])){
            count-=sMap.get(s[i])
        }else{
            count+=sMap.get(s[i])
        }
    }
    console.log(count)
};

romanToInt('MCMXCIV') //1994

3的冪

給定一個(gè)整數(shù)困肩,寫一個(gè)函數(shù)來(lái)判斷它是否是 3 的冪次方。如果是脆侮,返回 true 锌畸;否則,返回 false 靖避。
整數(shù) n 是 3 的冪次方需滿足:存在整數(shù) x 使得 n == 3x
示例 1:
輸入:n = 27
輸出:true

var isPowerOfThree = function(n) {
    while(Math.floor(n)==n&&n>0){
        if(n==1){
            return true
        }
        n = n/3
    }
    return false
};

Fizz Buzz

寫一個(gè)程序潭枣,輸出從 1 到 n 數(shù)字的字符串表示。

  1. 如果 n 是3的倍數(shù)幻捏,輸出“Fizz”盆犁;

  2. 如果 n 是5的倍數(shù),輸出“Buzz”篡九;

3.如果 n 同時(shí)是3和5的倍數(shù)谐岁,輸出 “FizzBuzz”。

var fizzBuzz = function(n) {
    let arr = []
    for(var i=1;i<=n;i++){
        if(i%3==0&&i%5==0){
            arr.push('FizzBuzz')
        }else if(i%5==0){
            arr.push('Buzz')
        }else if(i%3==0){
            arr.push('Fizz')
        }else{
            arr.push(i.toString())
        }
    }
    return arr
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市伊佃,隨后出現(xiàn)的幾起案子窜司,更是在濱河造成了極大的恐慌,老刑警劉巖锭魔,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件例证,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡迷捧,警方通過(guò)查閱死者的電腦和手機(jī)织咧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)漠秋,“玉大人笙蒙,你說(shuō)我怎么就攤上這事∏旖酰” “怎么了捅位?”我有些...
    開(kāi)封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)搂抒。 經(jīng)常有香客問(wèn)我艇搀,道長(zhǎng),這世上最難降的妖魔是什么求晶? 我笑而不...
    開(kāi)封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任焰雕,我火速辦了婚禮,結(jié)果婚禮上芳杏,老公的妹妹穿的比我還像新娘矩屁。我一直安慰自己,他們只是感情好爵赵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布吝秕。 她就那樣靜靜地躺著,像睡著了一般空幻。 火紅的嫁衣襯著肌膚如雪烁峭。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天秕铛,我揣著相機(jī)與錄音则剃,去河邊找鬼。 笑死如捅,一個(gè)胖子當(dāng)著我的面吹牛棍现,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播镜遣,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼己肮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼士袄!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起谎僻,我...
    開(kāi)封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤娄柳,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后艘绍,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體赤拒,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年诱鞠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挎挖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡航夺,死狀恐怖蕉朵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阳掐,我是刑警寧澤始衅,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站缭保,受9級(jí)特大地震影響汛闸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜艺骂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一诸老、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧彻亲,春花似錦孕锄、人聲如沸吮廉。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宦芦。三九已至宙址,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間调卑,已是汗流浹背抡砂。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恬涧,地道東北人注益。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像溯捆,于是被迫代替她去往敵國(guó)和親丑搔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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