91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

切棍子

發布時間:2020-04-09 16:42:15 來源:網絡 閱讀:459 作者:stlf2004 欄目:編程語言

假設要把長度為 n 厘米的木棒切分為 1 厘米長的小段,但是 1 根木棒只能由 1 人切分,當木棒被切分為 3 段后,可以同時由 3 個人分別切分木棒( 圖2 )。
求最多有 m 個人時,最少要切分幾次。譬如 n = 8,m = 3 時如下圖所示,切分 4 次就可以了。
切棍子

問題1
求當 n = 20,m = 3 時的最少切分次數。
問題2
求當 n = 100,m = 5 時的最少切分次數。


package main

import "fmt"

func cutbar(n,m,current int)int{
    if current >= n{
        return 0
    }else if current <= m{
        return 1 + cutbar(n,m,current*2)
    }else {
        return 1 + cutbar(n,m,current+m)
    }
}

func main(){
    times := cutbar(20,3,1)
    fmt.Println(times)
    times2 := cutbar(100,5,1)
    fmt.Println(times2)

}

這里使用遞歸函數較為方便,n是棍子厘米數,m是人數,current是當前棍子的段數。

  1. 每次運算查看當前棍子段數量少于等于人數,則棍子數量翻倍,返回切分棍子的次數加1;
  2. 棍子段數且少于厘米數,則棍子不能全被切翻倍,只能增加m個,返回切分棍子的次數加1;
  3. 當棍子段數大于等于厘米數時,表示已切完,不用再切了,返回次數為0。
    結果是8和22.
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孟村| 宁陕县| 汾西县| 南华县| 武功县| 台江县| 视频| 浦东新区| 汉沽区| 高安市| 云林县| 恩施市| 大厂| 介休市| 临澧县| 治多县| 荣昌县| 健康| 藁城市| 克东县| 洪湖市| 古丈县| 普安县| 西安市| 澜沧| 柞水县| 乃东县| 甘谷县| 德钦县| 湘潭县| 商河县| 翁牛特旗| 南宫市| 昂仁县| 张家港市| 建昌县| 渝中区| 隆安县| 鄂伦春自治旗| 罗定市| 曲麻莱县|