设为首页 加入收藏

TOP

Go基础(1)(二)
2019-03-25 14:07:54 】 浏览:231
Tags:基础
n() { min :
= 1 max := 100 for i := min; i <= max; i++ { var flag bool = true if i == 1 { flag = false } for j := 2; j <= int(math.Sqrt(float64(i))); j++ { if i%j == 0 { flag = false break } } if flag { fmt.Printf("%d是素数\n", i) } } }

分析:

1.求1-100的所有质数

2.注意求指数过程优化,除数最大达到根号被除数即可

 

demo8:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    min := 1
    max := 1000
    for i := min; i <= max; i++ {
        if isNarcissisticNumber(i) {
            fmt.Printf("%d是水仙花数\n", i)
        }
    }
}

func isNarcissisticNumber(n int) bool {
    tmp := strconv.Itoa(n)
    data := []byte(tmp)
    lenth := len(data)
    var result int = 0
    for i := 0; i < lenth; i++ {
        number, _ := strconv.Atoi(string(data[i]))
        result += number * number * number
    }
    if n == result {
        return true
    } else {
        return false
    }
}

分析:

1.求水仙花数的一种实现

2.这里的Atoi是多返回值函数,用不到的返回值用“_”代替即可

3.这里是字符串处理的方式实现,还可以用除10的数学方式实现

 

demo9:

package main

import "fmt"

func main() {
    fmt.Println(factorial(5))
}

func factorial(n uint) uint {
    if n == 0 {
        return 1
    }
    if n == 1 {
        return n
    }
    return n * factorial(n-1)
}

分析:

1.利用递归实现阶乘,是比较优秀的实现方式

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇windows从0开始学golang 下一篇Go开发之路 -- Go语言基本语法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目