每週一道演算法題009 找二進位制對稱的日期

2021-09-27 04:53:32 字數 985 閱讀 5376

把年月日表示為yyyymmdd這樣的8位整數,然後把這個整數轉換成二進位制數並且逆序排列,再把得到的二進位制數轉換成十進位制數,求與原日期一致的日期。求得的日期要在上一次東京奧運會(2023年10月10日)到下一次東京奧運會(預定舉辦日期為2023年7月24日)之間。

從起始時間開始逐天累加,對每一天進行進製轉換並反轉,然後比較,如果相同就輸出,不同就繼續,直至到達結束時間。

php:

function finddate($begin, $end)

$begindate = $begindate->add(new dateinterval('p1d'));

}}finddate("1964-10-10", "2020-07-24");

輸出:

19660713

19660905

19770217

19950617

20020505

20130201

golang:

package main

import (

"fmt"

"strconv"

"time"

)func main()

func finddate(begin, end time.time)

// 日期累加

dd, _ := time.parseduration("24h")

begin = begin.add(dd)

}}// 反轉字串

func reverse(s string) string

return string(runes)

}

輸出:

19660713

19660905

19770217

19950617

20020505

20130201

每週一道演算法題005 切木棒

假設要把長度為n厘公尺的木棒切分為1厘公尺長的小段,但是1根木棒只能由1人切分,當木棒被切分為3段後,可以同時由3個人分別切分木棒。求最多有m個人時,最少要切分幾次。譬如n 8,m 3時如下圖所示,切分4次就可以了。求當n 20,m 3時的最少切分次數。求當n 100,m 5時的最少切分次數。這道題...

每天一道演算法題 二進位制中1的個數

題目描述 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。測試用例 0 1 2 10 對應輸出應該為 0 1 1 2 分析 如果乙個整數不為0,那麼這個整數至少有一位是1。如果我們把這個整數減1,那麼原來處在整數最右邊的1就會變為0,原來在1後面的所有的0都會變成1 如果最右邊的1...

每週一道LeetCode演算法題 兩數之和

class solution return result 分析class solution for int i 0 i nums.length i throw newillegalargumentexception no two sum solution class solution map.put...