Day 11 - 用Kotlin解数学题:考拉兹猜想

Day 11 - 用Kotlin解数学题:考拉兹猜想
今天我们会用我前面所教的,来解今天的数学题,顺便统整一下,我希望今天能透过用程序写数学题的方式,来帮大家复习,先讲一下什麽是考拉兹猜想。

考拉兹猜想

考拉兹猜想适用於正整数,假设我们先有一个值n好了,当n是偶数时,就除以2,而当n为奇数时,就乘以3并加上1,
一直继续跑下去,最终n就会等於1,这适用於任何正整数。

Kotlin程序

我们就直接解吧,这边我们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)
}

总结

希望我今天解的数学题,大家有看懂,如果大家有更好的想法,可以自己试着写看看。


<<:  Day10 有图有真相

>>:  Day 7 - 拯救落後的专案能撑一天是一天(前端篇)

DAY 28 文章列表 - 2

对,他有两种版型:D 左侧的大图! 不知道为何大标都想加惊叹号XD 因为文章资料的内容太常用到了,所...

[Tableau Public] day 9:分析前先处理一下原始资料吧

第九天,打完疫苗已经22小时,目前只有接种处抬手会酸痛,目前还没感受到其他副作用。不过头已经开始有点...

Day01 - 【入门篇】Quick Start(1)

本系列文之後也会置於个人网站 开始之前~2?。开完笑的~ 但是想了许久,总觉的就这麽直接开始解释各...

Day07:Swift 基础语法-Struct 与 Class 的差异

前言 前面两篇文章学习了 Struct 和 Class, 两者用法相同、功能相似, 都可以用来储存 ...

Day26 D3js 浪漫复刻ExpertOption的养眼图表

D3js 浪漫复刻ExpertOption的养眼图表 用途 在以往实现d3图表时,多半是功能优先,可...