GO語言初級學習之代碼案例05

@(go語言 黑馬)[GO語言]

統(tǒng)計各字母的個數(shù)

  • 題目:輸入一串字母,統(tǒng)計各個字母輸入的個數(shù)
  • 邏輯:該案例統(tǒng)計字母上限由數(shù)組長度決定,可自行設(shè)置
  • 代碼如下
package main

import "fmt"

func main() {
    fmt.Println("請輸入一串字母,以回車結(jié)束")

    var array [20]byte
    for i := 0; i < len(array); i++ {
        fmt.Scanf("%c", &array[i])    //把輸入的每個字母記錄在切片array中
    }

    var ch [26]int     //26個數(shù)字分別對應26個字母,用來統(tǒng)計各字母出現(xiàn)的次數(shù)

    for i := 0; i < len(array); i++ {
        ch[array[i]-'a']++
        //array中的每個字母減去a,剛好在0到25之間,共26個數(shù),每個下標對應一個字母
        //在Assic碼表中,每個字符對應一個數(shù)字,并且a-z是按照順序排列,所以可以得到上面的效果
    }

    for i := 0; i < len(ch); i++ {
        if ch[i] > 0 {     //出現(xiàn)了該字母就打印,沒有出現(xiàn)則不打印
            fmt.Printf("%c出現(xiàn)了%d次\n", i+'a', ch[i])
        }
    }
}

找出一串數(shù)字中最大值的位置

  • 題目:找出一串數(shù)字中最大值的位置
  • 邏輯:邏輯在注釋中
  • 代碼如下
package main

import "fmt"

func main() { //求出切片中最大數(shù)的位置
    var a, b int
    fmt.Println("請輸入數(shù)組長度:")
    fmt.Scan(&a)
    fmt.Println("請輸入數(shù)組元素:")//這里輸入要用空格隔開,并且數(shù)量不能小于a的長度

    arr := make([]int, a)
    for i := 0; i < len(arr); i++ {
        fmt.Scan(&b)
        arr[i] = b
    }
    fmt.Println(arr)
    //找出最大數(shù),并且不改變其位置,并記錄它的位置
    var index int         //記錄下標
    temp := arr[0]        //引入變量,用來與所有元素比較
    for i := 0; i < a; i++ {
        if arr[i] > temp {
            temp = arr[i] //使temp等于比他大的元素
            index = i     //記錄每次滿足條件的元素下標,最后一個就是最大元素的下標
        }
    }
    fmt.Printf("最大數(shù)為arr[%d]=%d", index, arr[index])
}

求自守數(shù)

  • 題目:a的平方的末尾幾位數(shù)等于a,那么a為自守數(shù)
  • 邏輯:位數(shù)不同的數(shù)字分開處理
  • 代碼如下
package main

import "fmt"

func main() {
    //a的平方的末尾幾位數(shù)等于a,那么a為自守數(shù)
    var num [10001]int
    for i := 0; i <= 10000; i++ {//通過這個循環(huán),0-10000就儲存在切片中了
        num[i] = i
    }
    for i := 0; i <= 10000; i++ {
        if num[i] < 10 {
            if num[i]*num[i]%10 == num[i] {//平方后,求出個位數(shù)
                fmt.Printf("num[%d]=%d是自守數(shù)\n", i, num[i])
            }
        }
        if 9 < num[i] && num[i] < 100 {
            if num[i]*num[i]%100 == num[i] {
                fmt.Printf("num[%d]=%d是自守數(shù)\n", i, num[i])
            }
        }
        if 99 < num[i] && num[i] < 1000 {
            if num[i]*num[i]%1000 == num[i] {
                fmt.Printf("num[%d]=%d是自守數(shù)\n", i, num[i])
            }
        }
        if 990 < num[i] && num[i] <= 10000 {
            if num[i]*num[i]%10000 == num[i] {
                fmt.Printf("num[%d]=%d是自守數(shù)\n", i, num[i])
            }
        }
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容