美文网首页GO语言系列
GO语言学习初级之代码案例02

GO语言学习初级之代码案例02

作者: 大爬虫Shalom | 来源:发表于2018-07-17 21:33 被阅读23次

GO语言学习之代码案例02

@(go语言 黑马)[GO语言]

爱因斯坦出的一道数学题

  • 题目:爱因斯坦曾出过这样一道数学题,有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。求这个阶梯有多少阶?
  • 逻辑:假设有n阶,n分别对2,3,4,5,6,7取余,同时满足所有条件,用&&
  • 代码如下
package main

import "fmt"

func main() {
    var n int
    for n = 0; n < 1000; n++ {//这里可以不给n设置上限,不过程序会一直循环下去
        if n%7 == 0 && n%2 == 1 && n%3 == 2 && n%5 == 4 && n%6 == 5 {
            fmt.Println("n=", n)
        }
    }
}

求1到1000之间的水仙花数

  • 题目:每个位数的立方相加会等于本身的数,我们称之为水仙花数,求出1到1000之间的所有水仙花数(不包括1000)
  • 逻辑:这里就是要想办法提取出各位,十位和百位的数
  • 代码如下
package main

import "fmt"

func main() {
    for i := 0; i < 1000; i++ {
        a := i / 100      //对100取余得到百位数
        b := i % 100 / 10 //对100取余,再除以10得到十位数
        c := i % 10       //对10取余,得到个位数
        if a*a*a+b*b*b+c*c*c == i {
            fmt.Println("i=", i)
        }
    }
}

敲七

  • 题目:1到100之间,遇到含有7的数和被7整除的数,则输出敲桌子。
  • 逻辑:主要有3个条件:被7整除,个位不含7,十位不含7,;三个条件只要满足一个,就要敲桌子。
  • 代码如下
package main

import "fmt"

func main() {
    a := 0
    for ; a < 100; a++ {
        if a%7 == 0 || a/10 == 7 || a%10 == 7 {//三个条件用或语句连接
            fmt.Println("敲桌子")
        } else {
            fmt.Println(a)
        }
    }
}

打印出九九乘法口诀

  • 题目:输出九九乘法口诀
  • 逻辑:找出每行中的不变项,用来控制行,改变的用来控制列。
  • 代码如下
package main

import "fmt"

func main() {
    a := 0
    for ; a < 100; a++ {
        if a%7 == 0 || a/10 == 7 || a%10 == 7 {//三个条件用或语句连接
            fmt.Println("敲桌子")
        } else {
            fmt.Println(a)
        }
    }
}

找出10到10000之间的回文素数

  • 题目:回文的意思是,正着念个反着念都一样;素数是只能被1和自身整除的数;同时满足这两个条件的数称之为回文素数;找出10到10000的回文素数。
  • 逻辑:用for循环遍历10到10000所有的数,先判断是否是素数,在这一环节需要剔除非素数,然后再判断是否是回文素数。
  • 代码如下
package main

import "fmt"

func main() {

    for i := 10; i < 1000; i++ {
        flat := 1//利用flat的变化来剔除非素数
        for j := 2; j < i; j++ {
            //flat := 1
            if i%j == 0 { //判断是否为素数
                flat = 0
                break
            }
        }

        if flat == 1 {
            if i < 100 && i/10 == i%10 { //两位数,两位数个三位数分开
                fmt.Println(i)
            } else if i >= 100 && i/100 == i%10 { //三位数,三位数的百位和个位相同则是回文
                fmt.Println(i)
            }
        }
    }
}

相关文章

网友评论

    本文标题:GO语言学习初级之代码案例02

    本文链接:https://www.haomeiwen.com/subject/bxqqyftx.html