@(go语言 黑马)[GO语言]
判断是否为闰年
- 题目:手动输入一个年份,判断出该年份是否为闰年
- 代码如下:逻辑思路在注释中
package main
import "fmt"
//手动输入一个年份,判断出该年份是否为闰年
func main() {
var a int
fmt.Scan(&a) //输入一个年份
var b bool //b为true则为闰年 false不是闰年
//能被400整除的为闰年,能被4整除,同时不被100整除的为闰年;代码实现如下:
//(a%400==0) || (a%4==0 && a%100!=0);|| 或语句
if a%400 == 0 {
b = true
} else if a%100 != 0 && a%4 == 0 {
b = true
} else {
b = false
}
fmt.Println(b)
}
循环验证密码
题目:提示用户输入密码,如果密码输入错误,则给出提示,并让用户再次输入,直到密码输入正确为止
代码如下:逻辑思路在注释中
package main
import "fmt"
//提示用户输入密码,如果密码输入错误,则给出提示,并让用户再次输入,直到密码输入正确为止
func main() {
var password string //密码为字符串类型变量
fmt.Println("请输入密码:")
IMPROT:
fmt.Scan(&password)
if password == "xhl1995" { //这里设置的密码为"xhl1995",你也可以设置任意密码
fmt.Println("登陆成功!")
} else {
fmt.Println("密码输入错误!请再次输入:")
goto IMPROT //goto 返回到IMPROT标记位置,继续执行代码
//这里goto就实现了循环输入密码的功能
}
}
月份天数查询
题目:输入想要查询的年份和月份,便可查询到该年该月的天数
代码如下:这里使用的是switch实现的,逻辑思路在注释中
package main
import "fmt"
//输入想要查询的年份和月份,便可查询到该年该月的天数
func main() {
var year int
var month int
var day int
//手动输入年月:
fmt.Println("请输入年份:")
fmt.Scan(&year)
fmt.Println("请输入月份:")
fmt.Scan(&month)
//月份天数一共有三种情况:30天,31天,2月29天,闰年的2月28天,所以这里使用switch要方便些
if month > 0 && month <= 12 {
switch month {
case 1:
fallthrough
//fallthrough表示不跳出循环,并执行下一层代码,
// 不加fallthrough则只执行本层,因为里面内置break函数
case 3:
fallthrough
case 5:
fallthrough
case 7:
fallthrough
case 8:
fallthrough
case 10:
fallthrough
case 12:
day = 31//1,3,5,7,8,10,12月份都为31天
case 2:
//判断是否为闰年
if year%400 == 0 {
day = 29
} else if year%4 == 0 && year%100 != 0 {
day = 29
} else {
day = 28
}
default://default代表其余的意思
day = 30
}
fmt.Printf("%d年%d月有%d天", year, month, day)
} else {
fmt.Println("月份输入错误!")
}
}
利用GO语言解决一道数学题
题目:某校2006年有80000名学生,往后每年增加25%,问:哪年人数能够达到20万
代码如下:这里使用的是switch实现的,逻辑思路在注释中
package main
import "fmt"
//某校2006年有80000名学生,往后每年增加25%,问:哪年人数能够达到20万
func main() {
//利用for循环解决实际问题,不要将要输出的变量当做循环条件
var year = 2006
for amount := 80000.0; amount < 200000; amount *= 1.25 { //当人数达到20万,则停止循环
year++
}
fmt.Printf("%d年学员人数达到20万", year)
}
百钱百鸡
题目:公鸡价格5钱,母鸡价格为3钱,1钱可以买3只小鸡,问:如何用100钱买到一百只鸡?
代码如下:这里使用的是switch实现的,逻辑思路在注释中
package main
import "fmt"
//公鸡价格5钱,母鸡价格为3钱,1钱可以买3只小鸡,问:如何用100钱买到一百只鸡?
func main() {
chicken := 0
a := 0 //记录运行次数
for cock := 0; cock <= 20; cock++ {//最多只能买20只公鸡
for hen := 0; hen <= 33; hen++ {//最多只能买33只母鸡
for chicken := 0; chicken <= 100; chicken += 3 {//最多不能超过100只鸡
if cock+hen+chicken == 100 && cock*5+hen*3+chicken/3 == 100 {//满足:钱数100,鸡数100
fmt.Printf("公鸡:%d 母鸡:%d 小鸡:%d\n", cock, hen, chicken)
}
a++//每循环一次,a加1
}
}
}
fmt.Println("运行次数:", a)
}
- 改程序还可以优化,使程序运行次数大大减少:
package main
import "fmt"
//公鸡价格5钱,母鸡价格为3钱,1钱可以买3只小鸡,问:如何用100钱买到一百只鸡?
func main() {
chicken := 0
a := 0 //记录运行次数
for cock := 0; cock <= 20; cock++ {
for hen := 0; hen <= 33; hen++ {
chicken = 100 - cock - hen//减少chicken的循环
if cock*5+hen*3+chicken/3 == 100 && chicken%3 == 0 {
fmt.Printf("公鸡:%d 母鸡:%d 小鸡:%d\n", cock, hen, chicken)
}
a++
}
}
fmt.Println("运行次数:", a)
}