Go语言入门12---for循环的练习题&&goto语句用法&&随机数生成|Go主题月

403 阅读1分钟

水仙花数

方法一

package main

import (
	"fmt"
	"math"
)

func main() {
	i:=100;
	for ;i<1000;i++ {
	x:=i/100
	y:=i/10%10
	z:=i%10
	if math.Pow(float64(x),3)+math.Pow(float64(y),3)+math.Pow(float64(z),3)==float64(i){
		fmt.Println(i)
	}
	}
}

image.png

方法二

package main

import "fmt"

func main() {
	for a:=1;a<10;a++ {
		for b:=0;b<10;b++ {
			for c:=0;c<10;c++ {
				n:=a*100+b*10+c*1
				if a*a*a+b*b*b+c*c*c==n {
					fmt.Println(n)
				}
			}
		}
	}
}

image.png

求素数

package main

import (
	"fmt"
	"math"
)

func main() {

	for i:=2;i<=100;i++ {
		flag:=true
		for j:=2;float64(j)<=math.Sqrt(float64(i));j++ {
			if i%j==0 {
				flag=false
				break
			}

		}
		if flag {
			fmt.Println(i)
		}
	}
}

image.png

goto语句

    语法结构:
    goto label;
    ..
    ..
    label:statement;
    
    
package main

import "fmt"

func main() {
	var a = 5
	LOOP:
		for a<10 {
			if a==7 {
				a+=1
				goto LOOP
			}
			fmt.Println("a的值为",a)
			a++
		}
}

image.png

	for i:=0;i<10;i++ {
		for j:=0;j<10;j++ {
			if j==2 {
				goto breakHere
			}
		}
	}
        
        return//避免自行进入标签
	breakHere:
		fmt.Println("j等于了2")

image.png

生成随机数

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	num1:=rand.Int()
	fmt.Println(num1)

	for i:=0;i<10;i++ {
		num:=rand.Intn(10)
		fmt.Println(num)
	}
	rand.Seed(1000)
	num2:=rand.Intn(10)
	fmt.Println("->",num2)

	t1:=time.Now()
	fmt.Println(t1)
	//时间戳
	timeStamp1:=t1.Unix()//秒
	fmt.Println(timeStamp1)
	timeStamp2:=t1.UnixNano()//纳秒
	fmt.Println(timeStamp2)
	
	//step1:设置种子数,可以设置成时间戳
	rand.Seed(time.Now().UnixNano())
	for i:=0;i<10;i++ {
		fmt.Println("->",rand.Intn(100))
	}
	//获取指定范围内的随机数,Intn(n),包含0,不包含n
	num3:=rand.Intn(45)+10
	fmt.Println(num3)//1045
}

image.png