每週一道演算法題008 考拉茲猜想

2021-09-27 04:53:32 字數 773 閱讀 8557

考拉茲猜想

對自然數n迴圈執行如下操作。

•n是偶數時,用n除以2

•n是奇數時,用n乘以3後加1

如此迴圈操作的話,無論初始值是什麼數字,最終都會得到1(會進入1 → 4 → 2 → 1這個迴圈)。

現在設定初始值為偶數時,對其進行乘以3後加1,後續操作不變。如

4 → 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4

10000以內的偶數中,這樣能在到達1之前回到初始值的數有多少個?

建立乙個死迴圈,對n不斷的計算,直到n==1為止

php

// 檢查偶數是否合要求

function checknum($n)

}return false;

}$num = 0;

for ($i = 2; $i < 10000; $i+=2)

}echo $num;

輸出:

34
golang

package main

import "fmt"

func main()

}fmt.println(m)

}func checknum(n int) bool else

if val == n

}return false

}

輸出:

34

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

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

每週一道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...

程式設計訓練 每週一道程式設計題(九)

題目 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 2 31,2 31 1 請根據這個假設,如果反轉後整數溢位那麼就返回 0。例子 輸入 123 輸出 321輸入 123 輸出 321思路 分兩種情況討...