@(go語言 黑馬)[GO語言]
判斷是否為閏年
- 題目:手動(dòng)輸入一個(gè)年份,判斷出該年份是否為閏年
- 代碼如下:邏輯思路在注釋中
package main
import "fmt"
//手動(dòng)輸入一個(gè)年份脉课,判斷出該年份是否為閏年
func main() {
var a int
fmt.Scan(&a) //輸入一個(gè)年份
var b bool //b為true則為閏年 false不是閏年
//能被400整除的為閏年救军,能被4整除,同時(shí)不被100整除的為閏年倘零;代碼實(shí)現(xiàn)如下:
//(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)
}
循環(huán)驗(yàn)證密碼
題目:提示用戶輸入密碼,如果密碼輸入錯(cuò)誤呈驶,則給出提示拷泽,并讓用戶再次輸入,直到密碼輸入正確為止
代碼如下:邏輯思路在注釋中
package main
import "fmt"
//提示用戶輸入密碼,如果密碼輸入錯(cuò)誤跌穗,則給出提示订晌,并讓用戶再次輸入,直到密碼輸入正確為止
func main() {
var password string //密碼為字符串類型變量
fmt.Println("請(qǐng)輸入密碼:")
IMPROT:
fmt.Scan(&password)
if password == "xhl1995" { //這里設(shè)置的密碼為"xhl1995",你也可以設(shè)置任意密碼
fmt.Println("登陸成功蚌吸!")
} else {
fmt.Println("密碼輸入錯(cuò)誤!請(qǐng)?jiān)俅屋斎耄?)
goto IMPROT //goto 返回到IMPROT標(biāo)記位置砌庄,繼續(xù)執(zhí)行代碼
//這里goto就實(shí)現(xiàn)了循環(huán)輸入密碼的功能
}
}
月份天數(shù)查詢
題目:輸入想要查詢的年份和月份羹唠,便可查詢到該年該月的天數(shù)
代碼如下:這里使用的是switch實(shí)現(xiàn)的,邏輯思路在注釋中
package main
import "fmt"
//輸入想要查詢的年份和月份娄昆,便可查詢到該年該月的天數(shù)
func main() {
var year int
var month int
var day int
//手動(dòng)輸入年月:
fmt.Println("請(qǐng)輸入年份:")
fmt.Scan(&year)
fmt.Println("請(qǐng)輸入月份:")
fmt.Scan(&month)
//月份天數(shù)一共有三種情況:30天佩微,31天,2月29天萌焰,閏年的2月28天哺眯,所以這里使用switch要方便些
if month > 0 && month <= 12 {
switch month {
case 1:
fallthrough
//fallthrough表示不跳出循環(huán),并執(zhí)行下一層代碼扒俯,
// 不加fallthrough則只執(zhí)行本層奶卓,因?yàn)槔锩鎯?nèi)置break函數(shù)
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("月份輸入錯(cuò)誤!")
}
}
利用GO語言解決一道數(shù)學(xué)題
題目:某校2006年有80000名學(xué)生撼玄,往后每年增加25%夺姑,問:哪年人數(shù)能夠達(dá)到20萬
代碼如下:這里使用的是switch實(shí)現(xiàn)的,邏輯思路在注釋中
package main
import "fmt"
//某校2006年有80000名學(xué)生掌猛,往后每年增加25%盏浙,問:哪年人數(shù)能夠達(dá)到20萬
func main() {
//利用for循環(huán)解決實(shí)際問題,不要將要輸出的變量當(dāng)做循環(huán)條件
var year = 2006
for amount := 80000.0; amount < 200000; amount *= 1.25 { //當(dāng)人數(shù)達(dá)到20萬荔茬,則停止循環(huán)
year++
}
fmt.Printf("%d年學(xué)員人數(shù)達(dá)到20萬", year)
}
百錢百雞
題目:公雞價(jià)格5錢废膘,母雞價(jià)格為3錢,1錢可以買3只小雞慕蔚,問:如何用100錢買到一百只雞丐黄?
代碼如下:這里使用的是switch實(shí)現(xiàn)的,邏輯思路在注釋中
package main
import "fmt"
//公雞價(jià)格5錢坊萝,母雞價(jià)格為3錢孵稽,1錢可以買3只小雞,問:如何用100錢買到一百只雞十偶?
func main() {
chicken := 0
a := 0 //記錄運(yùn)行次數(shù)
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 {//滿足:錢數(shù)100菩鲜,雞數(shù)100
fmt.Printf("公雞:%d 母雞:%d 小雞:%d\n", cock, hen, chicken)
}
a++//每循環(huán)一次,a加1
}
}
}
fmt.Println("運(yùn)行次數(shù):", a)
}
- 改程序還可以優(yōu)化惦积,使程序運(yùn)行次數(shù)大大減少:
package main
import "fmt"
//公雞價(jià)格5錢接校,母雞價(jià)格為3錢,1錢可以買3只小雞,問:如何用100錢買到一百只雞蛛勉?
func main() {
chicken := 0
a := 0 //記錄運(yùn)行次數(shù)
for cock := 0; cock <= 20; cock++ {
for hen := 0; hen <= 33; hen++ {
chicken = 100 - cock - hen//減少chicken的循環(huán)
if cock*5+hen*3+chicken/3 == 100 && chicken%3 == 0 {
fmt.Printf("公雞:%d 母雞:%d 小雞:%d\n", cock, hen, chicken)
}
a++
}
}
fmt.Println("運(yùn)行次數(shù):", a)
}