Day 11 - 用Kotlin解數學題:考拉茲猜想
今天我們會用我前面所教的,來解今天的數學題,順便統整一下,我希望今天能透過用程式寫數學題的方式,來幫大家複習,先講一下什麼是考拉茲猜想。
考拉茲猜想適用於正整數,假設我們先有一個值n好了,當n是偶數時,就除以2,而當n為奇數時,就乘以3並加上1,
一直繼續跑下去,最終n就會等於1,這適用於任何正整數。
我們就直接解吧,這邊我們n值設13,並先打印出一次n,寫一個while迴圈,設當n不等於1時,就跑下面的程式,然後寫一個if,設若n是奇數就3n+1,其餘就是偶數,跑n/2,這樣我們就能用Kotlin程式看到考拉茲猜想的過程。
程式碼:
fun main() {
var n = 13
println(n)
while(n!=1){
if (n % 2 != 0){
n = 3*n+1
println(n)
}else{
n = n/2
println(n)
}
}
}
我前面也說過了,if是能夠用when能代換的,所以我這邊就也把when版本,也放出來,讓大家參考一下。
程式碼:
fun main() {
var n = 13
println(n)
while(n!=1){
when(n%2){
1 -> {
n = 3*n +1
println(n)
}
0 -> {
n = n/2
println(n)
}
}
}
}
when(x){
1 -> println(1)
}
if (x == 1){
println(1)
}
for(i in 1..10){
x = x + 1
println(x)
}
while(x<10){
x = x + 1
println(x)
}
fun hello(a:Int){
println(a%2)
}
希望我今天解的數學題,大家有看懂,如果大家有更好的想法,可以自己試著寫看看。